6 July 2022
T
19:41
Teegarden
In reply to this message
to make it better
S
20:07
Silvio
Guys... To be a validator, do you need a server, or is it possible with a normal PC that meets the requirements?
SF
20:38
Slava Fomin
Yes, you need a proper server and a data-center. Consumer PCs are not designed for such workload and stability.
20:39
Otherwise you will pay for downtime with your TON stake.
S
21:32
Silvio
Ok, thanks :)
7 July 2022
D
01:12
Danielle
Anyone knows how TON-ETH bridge is working?
I
01:34
Italia 💪
Hello
АД
02:26
Александр Добрый
Good afternoon! We are developing our marketplace on the tone, we are in the final stage when we need to develop our smart contract. Can we count on your support?
02:27
there is also a channel for 5000 satisfied members
D
03:07
Danielle
Maybe you know how to create oracles on TON?
SK
06:32
Shawn Kovac
In reply to this message
what is 'the tone'?
GH
06:55
GR Han
Hi there, I make a wallet address but it can't receive ton; is there any solution to resolve this??
I send testnet TON to new wallet address but it doesn't get it and receive it;
06:55
receive -> return
t
13:02
tmandálo
In reply to this message
ton network i guess🙄
AP
17:02
Andrey Pfau
In reply to this message
Online-translation services translate from Russian "Тон" as "tone", so in this context it means Тон=TON
17:06
@TonMeUp so you can ask for help in Russian dev-chat: https://t.me/tondev
o
17:49
oxlti.qube
In reply to this message
I am banned in @tondev because I tried to send TON via tonrocket in Ru chat chat :(
17:52
In reply to this message
@andreypfau also, can you answer our dev @demonbiker14 in dm about ton-eth bridge?
AP
17:53
Andrey Pfau
please don't flood in my dm
17:53
ask in chat
SK
17:53
Shawn Kovac
In reply to this message
thanks!
OB
18:03
Oleg Baranov
Hey!

I have released free service for subscription on incoming transactions of any 💎 TON addresses. @TonutilsBot

It works same as payment gateway, you can accept toncoins directly on your wallets and receive HTTP POST requests on your backend, without any commission. 🤌

If you worry about the scam - after webhook you can request any other api to check validity of the transaction. Service was done just for comfort of the TON community! ☺️

You can subscribe on address using bot - @TonutilsBot
t
18:07
talkol
this can be useful for e-commerce sites that want to accept ton
18:09
in the next ton hackathon you should propose that some team creates a quick payments plugin for some popular e-commerce platform that relies on your tool to demonstrate
АД
20:39
Александр Добрый
In reply to this message
🙏
8 July 2022
GH
10:52
GR Han
Hi there, is there any way to use ton wallet (chrome extension ver) in testnet also? I could find it in web version (wallet.ton.org?testnet) but couldn't find it with chrome extension ver
Y
11:01
Yashar
In reply to this message
I didn't know a chrome extension exists! Is it custodial or non-custodial?
GH
11:01
GR Han
may be non-custodial!
11:02
or any recommendation for a wallet that supports testnet "and" jetton?
AP
11:05
Andrey Pfau
In reply to this message
NonCustodial, because you have access to your seed words
Y
11:06
Yashar
In reply to this message
It's non-custodial if no one except you has your seed words. If they are being kept on some external server then it is custodial.
GH
11:19
GR Han
In reply to this message
Hi there, I tested this scaleton web wallet in testnet but I couldn't send jetton; It shows me that I succeed the jetton send but balance of jetton doesn't change. anything should I know??
NN
11:21
Nick Nekilov
In reply to this message
Write me PM please.
MK
11:48
Mick K
Hello devs, looking Rust/Motoko dev, DM please! 🙏🏽
t
13:09
talkol
In reply to this message
My recommendation is not to use testnet. You can deploy as many tokens as you want with the same details to mainnet. Just add suffix "-test5" to the token name.

You will do a maximum of 50 manual tests to see everything is working. This will set you back in fees approx $1. The time you will waste on setting up testnet is worth more :)
KK
13:54
Kirill Kirilenko
hey guys, can anybody help, where can i find more info about nft on ton? i need transfer nft from one wallet to another with smart contract
SF
19:35
Slava Fomin
In reply to this message
Hey there! Try looking at these examples.
KK
19:36
Kirill Kirilenko
In reply to this message
thank u☺️
RB
21:46
Roy Blankman
Hey is there a live TON network? Is there a blockexplorer?
22:00
As far as I recall there was a testnet live a few years ago & then it was shut down. Now there's a new testnet? Is there a schedule for deploying the mainnet?
t
22:03
talkol
There are many block explorers
22:03
The network is live
22:05
Huh! Found a full list of them:

https://ton.app/explorers
22:05
In reply to this message
The mainnet is live
22:06
https://ton.org is the main website for the project
9 July 2022
i
01:11
isoscele 💎
I have a problem from extracting address from ton http api. After getting object->data->b64 and decoding from b64 i got a hex string of 68 chars (for example this 8003d9b6ece5ab616955e5b3aaae6d0f8e32154d093009b3cfaf5dee32eb5807c5c0). How to transform it to a usable address for transactions? for example like this EQB5qiXT6-Zqx4sBXduG_pYmXRurYqbn2dE1B2U2V9rNdJpW ?
D
01:51
Dario
In reply to this message
You need to parse that cell, if you use js you can use tonweb or ton packages
I
01:58
Inokent 💎
Is there any guides to pytonlib???
i
02:56
isoscele 💎
In reply to this message
I followed tonweb. I receive a valid address (empty and inactive) but it's not the one i expected. am i doing smth wrong?
i
07:01
isoscele 💎
In reply to this message
Update: using parseAddress function everything works. thx
Fu
08:47
Frank uh
Hey, Team.
I'm going to build big project using TON network.
At the first, I'm going to install enironment and deploy a simple smartcontract on test net.
How can I install environment for deploying smart contract?
t
11:56
talkol
In reply to this message
You can follow the step by step instructions here: https://github.com/ton-defi-org/tonstarter-contracts
Fu
12:06
Frank uh
In reply to this message
Thanks, @talkol
t
12:07
talkol
If you get stuck on anything, let us know, good luck!
12:08
Don’t be afraid to play on mainnet. Every action is like $0.01 so with $1 budget you can do a hundred tests :)
Fu
12:19
Frank uh
ok, got it.
12:19
I just installed Android studio and TON plugin.
12:20
I'm checking document that you sent.
12:31
@talkol .
One question.
I'm going to build a token and some kinds of NFT.
And then I will build defi system including these token & NFT.
Is it possible on TON network?
t
13:25
talkol
In reply to this message
Everything is possible on TON network :)
Fu
13:25
Frank uh
In reply to this message
That's great. Thanks again.
t
13:27
talkol
NFTs might be easiest to create with one of the leading NFT marketplaces like getgems.io or disintar.io and a token is called a Jetton and you can use jetton.live to create it
13:28
Are you coming from Solidity background or new to smart contracts?
Fu
13:30
Frank uh
Yea, I have rich experience in Solidity.
13:31
I just planned to use Polygon or Avalanche, but client suddenly suggested Ton Network.
AS
13:32
Aleksandr Shepelev
In reply to this message
A lot of new horizons are waiting for you 😆
Fu
13:34
Frank uh
Yea, I'm exciting now.
14:07
In reply to this message
From English to Russian it usually ends up as Tonna. But never Tuna. 😻))
M
14:09
Mr. B
In reply to this message
😅
SF
14:11
Slava Fomin
In reply to this message
TON™ — widening your horizons, if you like it or not…
O
14:34
Omid
hi
14:34
Why does it give this error for token generation? What does this error mean?
Fu
15:03
Frank uh
In reply to this message
@talkol .
Is there any video link of this tutorial?
t
15:04
talkol
In reply to this message
No, but you can contribute one 😅
15:04
We’re building this ecosystem together
15:05
In reply to this message
If you come from Solidity, please read this first, it will help answer many questions:

https://society.ton.org/six-unique-aspects-of-ton-blockchain-that-will-surprise-solidity-developers
AP
19:05
Andrew Python
In jetton.live, the message for the transfer is not assembled according to the scheme from TIP-74 (the Either bit is missing). https://github.com/ton-defi-org/jetton-deployer-webclient/blob/main/src/lib/jetton-minter.ts#L234
And the biggest problem - default contract does not throw an error!
t
19:08
talkol
In reply to this message
Thanks for reporting, will be resolved tomorrow
19:10
In reply to this message
Please DM to explain because the contract code is taken 1:1 from the official implementation by TON core team
10 July 2022
SM
08:20
Stephen Mande
Hello guys ,someone send a link on how to begin developing on the ton blockchain
SM
08:33
Stephen Mande
Appreciate it 🙏
A
10:17
A
Hi.
Is there any instruction on how to use tonscan project locally or by api ?
SE
10:58
Semyon Elnikov
I Have simple transfer from Ton Wallet

with comment: 2


it is possible to parse comment: 2
right inside in recv_internal??

It will be int 64?
10:58
10:58
10:58
tg_image_1912812052.jpeg
Not included, change data exporting settings to download.
143.0 KB
AT
11:05
Andrey Tvorozhkov
In reply to this message
Yes. First you need check that OP code is 0, then all other bits will be encoded comment
11:08
In reply to this message
UTF-8 encoding use 8 bits per symbol, so not 64
SF
11:50
Slava Fomin
In reply to this message
Actually, it uses from 1 to 4 bytes, depending on a symbol.
AT
12:02
Andrey Tvorozhkov
In reply to this message
I guess «2» will be encoded as ASCII, so 7 bits 😁
SE
12:31
Semyon Elnikov
In reply to this message
omg, spending 2 hours for load_uint but store_int 😭)

Now everthing work well, as i wanted!

Thanks!
AP
12:35
Andrey Pfau
In reply to this message
signed/unsigned classic haha
i
12:39
isoscele 💎
what's the fastest way to extract public/private keys from the 24 seed words? and viceversa?
AP
12:41
Andrey Pfau
In reply to this message
You can't get seed from private key
i
12:52
isoscele 💎
In reply to this message
algorithm looks interesting i'll give it a read but i need to use it one time I thought there were like metamask wallets that allow you to extract private key someway
t
12:55
talkol
In reply to this message
We’re using this JS library for mnemonics in ton:
https://github.com/toncenter/tonweb-mnemonic
12:56
There’s probably one in golang too, it all depends what language you need :)
i
12:56
isoscele 💎
This is what i was looking for
12:57
Thank you! :)
t
13:01
talkol
There are a few open source JS wallets and all of them use it, you can learn a lot from their code

For example this is wallet.ton.org:
https://github.com/toncenter/ton-wallet
SF
13:03
Slava Fomin
In reply to this message
For this specific case, yes :)
t
13:03
talkol
In reply to this message
This is a different wallet in JS that uses a different library stack:

https://github.com/tonwhales/wallet
SK
19:25
Sergey Khaylov
Hello, I need help. How I can get all nft collections for a wallet? I'm using tonweb npm package.
V
21:03
Vali
@talkol very good articles about the difference between solidity and TON, and about doing an hello world on TON. I've initially started my adventure with the official doc but it is easier to start with these blog articles
t
21:04
talkol
In reply to this message
Be aware that every developer likes their own stack :) so there is no one correct way to develop
21:08
If you find issues with the hello world post please let me know and I’ll fix it, the libraries and compilers keep updating and not always backwards compatible
11 July 2022
V
11:06
Vali
As I'm using Ubuntu 20 (WSL) and there are no prebuilt for that OS, I've done the "compile by yourself" and, after some warning messages, the last command line fails at 77%.
11:06
Error message is:
[ 77%] Building CXX object overlay/CMakeFiles/overlay.dir/overlay-manager.cpp.o
[ 77%] Linking CXX executable test-storage
/usr/bin/ld: storage/libstorage.a(TorrentCreator.cpp.o): in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > td::serialize<ton::TorrentHeader>(ton::TorrentHeader const&)':
TorrentCreator.cpp:(.text._ZN2td9serializeIN3ton13TorrentHeaderEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_[_ZN2td9serializeIN3ton13TorrentHeaderEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_]+0x3f): undefined reference to `void ton::TorrentHeader::store<td::TlStorerCalcLength>(td::TlStorerCalcLength&) const'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test-storage.dir/build.make:151: test-storage] Error 1
make[1]: *** [CMakeFiles/Makefile2:2079: CMakeFiles/test-storage.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
A
11:25
A
Hi.
how to convert wallet address to base64url or the verse ?
A
12:20
A
In reply to this message
Thanks a lot ❤️
i
12:48
isoscele 💎
Guys in func when "throwing" inside a function means that the transaction is cancelled? for example if i send from main acc 10 ton but in smart contract i throw if amount sent less than 20, means that the transaction is rejected and I still have 10 tons on my main?
OB
13:00
Oleg Baranov
In reply to this message
If its internal - depends of address bounce flag, if address is bounceable, then amount minus gas will be returned to your wallet. But transaction will be recorded in blockchain anyway.
13:01
If its external - then it depends on accept call in code. If it throw before accept, it will be not recorded in blockchain
13:02
internal = contract to contract
external = human to contract
13:03
in case if you transferring some coins to contract from your wallet it will be internal.
you -> wallet -> contract, so external, then internal
i
13:10
isoscele 💎
What's the practical utility of non bounceable messages (internal)?
OB
13:14
Oleg Baranov
coins will stay on contract side, for example this is used on wallet deploy, when passing state init
SE
13:28
Semyon Elnikov
What are Best Practices to debug smart contract?

For example I deploy smartcontract to testnet, but something wrong and ton bounce back.

Code is huge, and i dont know where to start debugging.

Can I start local node and read logs, or stdout or something?
i
13:29
isoscele 💎
In reply to this message
13:30
It allows you to query public smart contracts and execute stuff locally
t
13:48
talkol
In reply to this message
Normally, unless you're writing a wallet contract - which is something that probably just the core team should be doing, you will not use external messages anywhere. Everything should be internal.
13:50
I see some people doing admin/upgrade patterns on external messages, but that's bad practice IMO. If you want to transfer ownership to a multisig wallet all that wouldn't work.
13:51
Long story short, forget that external messages exist as contract writer :)
i
13:53
isoscele 💎
In reply to this message
isn't sometimes better to directly interact with the contract via external messages instead of doing two steps (external to smart contract A and from smart contract A to B)? Especially when no money or authentication involved. For example a smart contract that based on the incoming external messages activates some behaviour. Making this contract usable for more ppl could make the private key mechanism useless but i think there may be some use cases.
t
13:54
talkol
In reply to this message
The best practice is to use ton-contract-executor. If you're familiar with Solidity, this is very similar to what hardhat does. It runs the TVM in Javascript so your tests are very fast and 100% free.

This project shows a working setup for this on a simple contract: https://github.com/ton-defi-org/tonstarter-contracts

You can enable debug mode in ton-contract-executor and then you can add DEBUG prints from inside your FunC code, here is an example: https://github.com/ton-defi-org/tonstarter-contracts/blob/main/contracts/main.fc#L57
13:56
In reply to this message
No. I can't think of a single use-case where that would make sense. Most meaningful interactions would cost gas so you must pass through a wallet contract to fund the gas. And then the wallet contract interacts with you through internal message.
13:59
Going another step through a contract is not a problem, it's a feature. It makes the system modular and separates the wallet authentication concern (single signer vs multi-sig for example) from the dapp concerns. If Ethereum had made a similar decision you would be able to see people using multi-sig wallets for defi apps there.. which is a big headache currently
V
14:01
Vali
In reply to this message
pb solved, I've only used the official doc instead of following the instructions from the git repo ton-defi-org/ton-binaries. Now, func, fift and lite-client are working.
t
14:52
talkol
In reply to this message
These are similar to writing your tests in Solidity. I know that many people tried this years ago on Ethereum and everybody concluded it’s not a good idea and nobody does it today
14:53
I don’t think we need to reinvent the wheel here, there are established practices for effective smart contract development and those include writing tests in JavaScript. This is by far the most effective and efficient method
s
15:50
sepehr
Can i accept TON coin as payment method in telegram bot api?
NA
15:52
Narek Abovyan
Hey guys!
We have open-sourced out smart contract stuff from @getgems
Hope this will help some of you to build your own NFT solutions on TON
NA
15:52
Narek Abovyan
T
TonTech 11.07.2022 15:50:18
Today we are happy to announce that we are open-sourcing our smart contracts along with tests and code for interacting with them!

This includes:

- test & code for interacting with standard NFT contracts
- our own marketplace contract
- our sale contract
- our single NFT contract

Github link to contracts - https://github.com/getgems-io/nft-contracts

Hope this will help developers to make more cool stuff with NFT’s in TON.

Stay tuned!
i
16:46
isoscele 💎
In reply to this message
You can use crypto bot api
16:46
In tonweb what is send mode?
t
18:03
talkol
In reply to this message
FunC is a difficult sandboxed language due to security concerns of managing money on-chain. Much like Solidity. I would only use it to write the code that runs on-chain (the contract itself). Peripherals like a test suite can run anywhere, why would I use the most difficult secure language to write them? JavaScript is by far the easiest most popular language in the world, it’s a natural choice for anything that doesn’t run on-chain.

And regarding Fift, I think you can safely ignore its existence altogether. I haven’t seen one relevant use-case so far that justifies the time it takes to learn it. You simply don’t need it for anything.

The straightforward stack is very simple:

On-chain code - FunC

Everything else (test suites, build and deploy scripts, client apps, telegram bots, backends) - TypeScript
AT
18:19
Andrey Tvorozhkov
In reply to this message
> You simply don’t need it for anything.

I don't thinks so. I could develop native blockchian indexer (in c++ ton sources) only because I've learned Fift before. In my opinion - fift is good for quick experiments and understanding the work of TON.

Toncli helps using fift for interacting with blockchain for parsing and fast MVP developing.

> The straightforward stack is very simple:

Don't think so. Using tonlibjson you can interact with TVM / TON stuff in any language. So actually you can use any language you want. (Go, Python, Etc.)

Also tests can be written on Func itself https://github.com/disintar/toncli/blob/master/docs/advanced/func_tests_new.md it's very simple with new version of toncli & new tests engine.
18:22
In reply to this message
Would we be able to run @disintar faster without fift & toncli and using typescript?

Maybe.

Would it be just as fun, cool and educational?

Unlikely.
t
18:22
talkol
In reply to this message
Will be cooler and more fun 😂
AP
18:23
Andrey Pfau
🤣 FunC
t
18:26
talkol
Of course you can use any language.. the question what is the most effective. There is soooo much to learn. We don’t need to overkill people with learning things that aren’t a must.

You want your teams to focus on learning 2 environments well and reuse this knowledge for multiple products. You will be able to ship faster in higher quality.

You’re not going to build your client in Python. And if you already know a good testing framework on JavaScript might as well reuse it for other parts.

I actually think it’s much more educational too. So people can focus on the important things and not on boilerplate :)
AT
18:32
Andrey Tvorozhkov
In reply to this message
In the current scenario, typescript is a very complex setup, the improvement of which will greatly slow down "growth".

Fift is much closer to the TON sources and allows you to experiment and introduce improvements faster.

The improvement of TON is much easier through the improvement of fift than through typescript, which has a very distant relationship to the TON sources.

Show me the contributing activity to the TON sources from your typescripters? If you look at the core TON repo improvement, you will see that these people are using fift.

So I would be careful with the choice of "important things"
t
18:33
talkol
In reply to this message
I think if the core people would switch to improving infra like ton-contract-executor and improving the TypeScript stack, it would do much good to the ecosystem
18:35
In reply to this message
TypeScript is no longer a complex setup, you have starter projects already set up
AT
18:36
Andrey Tvorozhkov
In reply to this message
I don't think so. Fift is very close to the TON sources and allows you to understand them more accurately, as well as quickly make improvements.

Whereas ton-contract-executor is a very far thing from the sources, although it is really good.
t
18:37
talkol
Normally you don’t want your app developers working in the opcode/bytecode level. We have abstractions for a reason
18:38
But of course there is no right answer, it’s all a question of personal taste ❤️❤️
18:43
In reply to this message
Here is a relatively complex multi-contract AMM with client and contracts and bot, with the stack I believe in, without toncli and without fift: https://github.com/tonswap

When we finish improving ton-contract-executor and wrapping it like hardhat, unify the api between tonweb and ton npm, this will be so elegant you could eat off of it :)
SE
18:45
Semyon Elnikov
In reply to this message
idk

just 2 tests counter smart contract

on js mocha spec

https://github.com/ton-defi-org/tonstarter-contracts/blob/main/test/counter.spec.ts

and counter test on func

https://github.com/ton-blockchain/func-contest1-tests/blob/master/tests/tests/tests-1.fc

any js, ruby, python, hardhat, truffle, anchor coder knows how read and write specs without reading documentation
D
18:46
Dario
In reply to this message
why did you make a dex that support trades only for ton/token pairs?
t
18:51
talkol
In reply to this message
Good question, it’s the correct first version IMO:

1. Jettons are sharded to multi contracts so Jetton to Jetton swaps create too many messages that become hard to reason about. I believe smart contracts need to be kept simple so people could review and understand them. TON coin is native so you can handle it without extra messages so it simplifies the flow.

2. Liquidity pairs for the benefit of the ecosystem should be encouraged to be paired with TON coin to increase demand for TON coin. It’s much better for us than people doing pairs with USDC for example.

3. Most popular pairs on Uniswap de-facto pair with ETH.

4. You can swap between any two tokens with multi hop. And there’s going to be less price impact if we concentrate liquidity in the main pairs with TON and always go through them.
18:52
It wasn’t done out of laziness :)
D
18:52
Dario
In reply to this message
ahahah
18:53
understood, still native-token pairs feels like uniswap v1
t
18:53
talkol
The client will support swapping any two tokens, don’t worry. The pairs are an implementation detail of how we split liquidity internally
D
18:53
Dario
+ jetton-to-jetton are pretty easy to do
t
18:53
talkol
In reply to this message
Yea, TON blockchain is very different from Ethereum that runs everything atomically. Less messages is better IMO
D
18:54
Dario
i have a different opinion, 9 messages is not such a big number
t
18:54
talkol
Hard to understand
18:55
Less chance for security vulnerabilities
D
18:55
Dario
even if there are more messages the logic is still the same
V
18:55
Vali
In reply to this message
If I understand well, 9 messages means that the swap would take at least 9 different blocks ?
t
18:55
talkol
Yes
D
18:55
Dario
In reply to this message
no
t
18:56
talkol
And you need to explore 9 different pages in a block explorer to understand what happened
18:56
In reply to this message
Messages are asynchronous, you can’t assume they will be handled in the same block
D
18:56
Dario
In reply to this message
but i cant assume it will be handled in different block, too
t
18:57
talkol
In reply to this message
Your code should assume that to avoid vulnerabilities, that’s what I meant
D
18:57
Dario
yes it make sense, really
18:57
im also totally for the kiss logic
V
18:57
Vali
ok so in minimum 1 block and in an unknown max of blocks 👍
t
18:58
talkol
Also I think concentrating liquidity will be better for price impact
18:58
In reply to this message
Max 9 different but you don’t know when
D
18:59
Dario
In reply to this message
well soon you will be able to test our dex, so feel free to write your opinion
t
18:59
talkol
👍👍👍
19:00
We can audit each other
AP
19:01
Andrew Python
In reply to this message
9 messages for one swap?
AT
19:03
Andrey Tvorozhkov
In reply to this message
(Sorry)
D
19:04
Dario
In reply to this message
mandatory for jetton-to-jetton pairs
AP
19:06
Andrew Python
In reply to this message
I have a jetton-to-jetton contract but it uses less than 9 messages
t
19:07
talkol
@dariolol how are you doing tests? are you open source?
D
19:17
Dario
In reply to this message
ts and ton-executor, for now its close source
t
19:28
talkol
In reply to this message
I hope you will open source before release
i
19:41
isoscele 💎
What's the easiest way to run a lite client and retrieving basic info from blockchain?
19:41
Some great library or smth
D
19:45
Dario
In reply to this message
If you deploy a "dex" contract manually for each pair with an init method, it could be reduced. If you make something like uniswap and so on, you need more transactions
d
19:45
doni
contract per pool is probably a must
D
19:45
Dario
In reply to this message
No, i mean
OB
19:46
Oleg Baranov
In reply to this message
i
19:46
isoscele 💎
In reply to this message
Thx for direction! Is there something on node or python?
OB
19:47
Oleg Baranov
Yes, tonweb for example, on js
19:48
But i think it uses api to interact with ton
i
19:49
isoscele 💎
In reply to this message
t
19:56
talkol
In reply to this message
d
20:00
doni
In our current dex implementation (tonswap ) ton-jetton pools

swap is about 4 messages ( both directions)
add liquidity is 5 messages
remove liquidity is 5 messages

in case of multi-hop , swapping 2 pools together would be 4+4 messages , but max route would be always max 2 pools

i think the biggest challenge in jetton-jetton pools is add liquidity

it would be interesting to see how to it done securely
AP
20:04
Andrew Python
In reply to this message
Add liquidity to jetton-jetton is easy (without hashmap)
d
20:05
doni
you have sources you can share ?
AP
20:06
Andrew Python
In reply to this message
I can't post links to everscale dev chats here 😄
d
20:06
doni
😂
20:06
is it func code ?
t
20:08
talkol
Everscale code is assume is their weird solidity thing? Or is it FunC?
D
20:08
Dario
In reply to this message
It uses the same logic as func
20:08
The only weird thing they added is await
t
20:08
talkol
Well, with await everything is easy 🙃
D
20:09
Dario
In reply to this message
What is your concern about the lp stuff?
AP
20:11
Andrew Python
In reply to this message
I can't post the solution (we're closed source), but it's really not hard. You just need to use the right approach (it's TON)
Yes, on FunC
D
20:13
Dario
In reply to this message
Also, its the same logic behind the token standard, you only need another contract for each user
d
20:21
doni
In reply to this message
i think using jetton transfer + forward ton , is a good way to pass add liquidity message .

i think short path ( 5 messages ) , is easier to revert and has a better chance of success , adding an extra param for slippage to insure price changes in the pool , the longer the message count is the more room for price change
D
20:23
Dario
The problem is the hardencoded value for gas usage by the contract
20:23
Thats why a dex shouldn't use native ton, since gas price could change
20:24
You should read network config and use that to compute a dynamic value for the gas usage
d
20:33
doni
i think that separating the ton balance and the ton reserves can be separated easily
AP
20:40
Andrew Python
In reply to this message
need to hardencode the value of gas, not the value of TON required to pay for gas
D
21:01
Dario
In reply to this message
I dont think its worth it, just use jetton -to-jetton and the awesome WTON token
i
21:07
isoscele 💎
Pytonlib gives me this error on client.init(). Is it a common issue?
RG
22:08
Ruslan Gabdullin
In reply to this message
Hi, maybe you use old version? Try to pip3 install -U pytonlib
i
22:09
isoscele 💎
In reply to this message
It works great on ubuntu but not on windows. I'm investigating more
RG
22:11
Ruslan Gabdullin
In reply to this message
One more problem could be in Windows PATH max length. This path seems long enough. Did you extended PATH max length when installing python (there was a checkbox in an installer)?
SE
22:11
Semyon Elnikov
maybe better use WSL
12 July 2022
RG
00:00
Ruslan Gabdullin
In reply to this message
Or Docker with Ubuntu
i
00:47
isoscele 💎
In reply to this message
I used wsl thx. Temporary solution tho
RG
00:56
Ruslan Gabdullin
In reply to this message
Btw, it would be good to get some tech details on this issue to solve the problem in the library
i
00:59
isoscele 💎
I'll open an issue later
RG
00:59
Ruslan Gabdullin
Thx a lot!
Bn
10:35
Bin nam
nam bin
10:35
otp
SK
14:42
Sergey Konakov
Hi team !

I have installed a validator server in the testnet. Do anyoone knoow the minimal staking amount too start validation process in testnet ? If it is the same amuont oof 10000 TON as in main network, then where to get it from ? Testgiver TON Bot is providing only 2 TON per hour …
IR
16:42
Ivan Romanovich
Hi all!

I do FunC lessons in Russian and recently started translating them into English. 2 lessons have already been translated.

For those who are interested here is the link: https://github.com/romanovichim/TonFunClessons_Eng
ST
19:52
Shayan Toqraee
There is an item at the end of roadmap in the Ton's website reading "Bitcoin & EVM Workchains". Is there any reading material available on that?
SF
20:26
Slava Fomin
In reply to this message
I don't believe so. This is a long-term goal and is probably experimental.
20:27
However, the concept is somewhat explained in the documentation, see the whitepaper.
o
20:31
oxlti.qube
In reply to this message
How about TON External Secure ID?
RG
21:34
Ruslan Gabdullin
In reply to this message
Hello once again. Did you installed OpenSSL for win64? If not, then could you please try to install it. Here is the instruction: https://github.com/toncenter/ton-http-api#local-run-experimental
21:39
A missing library is included in FileNotFound error in windows and it’s the most unclear error which took a lot of time to me😅
i
21:45
isoscele 💎
In reply to this message
Thing is I checked that file directory and the file actually was there. Anyway i'm reinstalling openssl and i'll let you know
RG
21:46
Ruslan Gabdullin
The previous time I forgot about this thing. Hope it will work
21:47
Note, that the 1.1.1 version is required. With 3.0 it won’t work🙃
i
21:50
isoscele 💎
In reply to this message
Probably that's what happened. Now it works. I probably installed another ver by mistake
21:50
Sry for wasting ur time
RG
21:51
Ruslan Gabdullin
In reply to this message
No problem, glad to help!🙂
13 July 2022
C
04:44
Cerbero
I am testing with toncenter and tonapi, I can work with transactions and wallets and everything is fine, but I don't understand how to get information from sales contracts.
For example
https://explorer.tonnft.tools/sale/EQBv_XbqWY-Ua0EgrlzBDCckO8s4s14qy7WkL9Z2k6E9bjEq

How do I get the "NFT Owner Address" or "Full Price"?
o
09:03
oxlti.qube
Hi! https://github.com/ton-blockchain/TIPs/issues/24

Where can I find the code of bridge oracle?
こj
09:21
こう j3r
hi guys do we have a list of tools to develop ton apps?
o
09:37
oxlti.qube
In reply to this message
I need the code of oracle.
t
09:59
talkol
In reply to this message
I assume if it was ever published it would be next to them
SE
15:44
Semyon Elnikov
Func needs macros syntax like in C

#define MAX(a, b) a >= b ? a : b


I'm tired of the repetition of the code

want to write DRY code, but cant 😭😭😭
SF
16:08
Slava Fomin
In reply to this message
Aren't macros an anti pattern in C++?
SE
16:15
Semyon Elnikov
I dont care, Im just rewrite 10 line code for 1 change in data storage 😅
RB
16:47
Roy Blankman
In reply to this message
what do you use instead?
SF
17:20
Slava Fomin
In reply to this message
Constructs supported by the language standard?
NA
18:34
Narek Abovyan
T
TonTech 13.07.2022 15:52:54
Hey guys!

Today we are happy to announce our second grant.
This one is also all about NFT’s, it’s a new concept of tokens called Soulbound tokens.

In short soulbound NFT’s can only be owned by one person and could not be sold or transferred.

We are looking for a person or a team which will deliver smart contracts for soulbound NFT’s on GitHub using our technical specification.
Grant sum is 1,000 TON.

Grant applicants are expected to send a short intro and a cover letter to apply for the grant through our @nfton_bot (please, use the “Need help” button on it). We might approve one team (or separate individual) to work on this project.

Technical requirements:

https://telegra.ph/TON-SBT-Contract-Product--Technical-requirements-07-11
RB
18:50
Roy Blankman
In reply to this message
but the laguage standard includes all of c--and bjarne stroustroup himself says good C programs are good c++ programs
18:52
anyway, doesn't matter, was curious if you had a specific replacement for them that's specific to c++
18:53
Deleted Account
I have questions about TON's Payment Channels. Is there a TON group that can answer questions about that for me? (Great job by the way! this feature is impressive!)
RB
18:53
Roy Blankman
In reply to this message
wow this is cool, how does the specs webpage open natively in telegram like this? what's this feature?
18:57
also, is anyone using a format for wroting TON smart contracts other than this .fc format I see here? https://github.com/getgems-io/nft-contracts/blob/main/packages/contracts/sources/nft-item.fc
18:57
I saw there was a solidity to TVM compiler on github. What's the plan for a simple language for writing TON smart contracts?
AS
18:58
Aleksandr Shepelev
In reply to this message
new language is developing for it. it is called Tact
RB
18:58
Roy Blankman
In reply to this message
and where is the .fc format documented?
18:59
what do you call the .fc format? And TVM bytecode, is that documented somewhere? (sorry for googleable questions, just want to make sure I'm using the standard references)
19:00
can I use tact already? even in prototype form?
RB
19:03
Roy Blankman
I see thank you, .fc is FunC. appreciate the help.
RB
19:22
Roy Blankman
In reply to this message
@a_s_shepelev given the state of tact now, do you think trying to write these nft start contracts in tact is worthwhile?
NA
19:23
Narek Abovyan
I don’t think Tact is production ready now
RB
19:23
Roy Blankman
"Tact is a very new project. It is not fully designed yet and certainly not ready for use. We announce it early in order to collect the feedback and make it useful to developers incrementally."
19:24
yeah just saw this
SF
20:18
Slava Fomin
t
20:27
talkol
In reply to this message
Solidity to TVM is not a direction TON believes in, these were attempts to do shortcuts and force Ethereum state of mind but TON is too different for this to work well

Read this to understand why: https://society.ton.org/six-unique-aspects-of-ton-blockchain-that-will-surprise-solidity-developers

Regarding Tact, I wouldn’t wait.. FunC is not very difficult by itself. The difficult part is more to understand TON distributed architecture. FunC is production ready and all contracts today use it
RB
20:29
Roy Blankman
what's the best way to understand TON architecture? reading the whitepaper?
t
20:40
talkol
In reply to this message
What’s your background?
20:42
In reply to this message
You can try here for general questions how it works. If you have API specific questions, I remember that during the hackathon about it a while ago this group was active: https://t.me/tonsc_chat you can ask in English there
RB
20:43
Roy Blankman
In reply to this message
have been solidity dev for a long time, was a c, python & haskell dev before that
20:45
native english speaker, but I speak russian reasonably well if there are better docs in russian to consult
t
20:45
talkol
In reply to this message
So without a doubt start with this: https://society.ton.org/six-unique-aspects-of-ton-blockchain-that-will-surprise-solidity-developers I can’t stretch this enough. And then to dive deeper about any specific concept explained there, ton.org/docs is your friend and browsing lightly through the white papers too. And if you get lost ask here and we will help point out
RB
20:46
Roy Blankman
In reply to this message
thanks, will start browsing.
20:46
what's the biggest app running on TON currently?
t
20:46
talkol
In reply to this message
The contract that sees the most action?
RB
20:47
Roy Blankman
In reply to this message
the most complicated and featureful. i want to read the code of a sophisticated smart contract
t
20:48
talkol
I think that the system smart contracts are the most complicated - the ones dealing with elections for validators for example
20:50
They were written by core team so hopefully they’re more secure/thought out than average
RB
20:56
Roy Blankman
So the fif stuff looks incredibly complicated. we're probably not going to see much in the way of app development until something like tact is finished, right?
t
20:58
talkol
In reply to this message
No no. Ignore the Fift, you don’t need it.
RB
20:58
Roy Blankman
ok focus on funC. is there a good example of a func app?
t
20:59
talkol
Look at Fift as an intermediary low level language. You write in FunC which is pretty simple - it’s just like C. It doesn’t have any crazy stuff.

Then in your build, the scripts compile your FunC to Fift and immediately Fift to bytecode. So you don’t need to master Fift unless you’re working on your own compiler or something low level like that
21:02
In reply to this message
In the folder I included there are many FunC examples. It’s the files with .fc extension.

Here are the examples of NFT and “ERC20” parallel in FunC:
https://github.com/ton-blockchain/token-contract

They are just FunC code, without all the build environment. If you want to see how this fits in with build and tests, I made a project with a very convenient environment:
https://github.com/ton-defi-org/tonstarter-contracts

If you come from Solidity it will feel natural as the build and tests are in TypeScript like hardhat does
t
23:56
talkol
In reply to this message
I don’t speak any Russian so for my interest it’s better the materials are international :)
14 July 2022
D
01:38
Dario
In reply to this message
We are probably the only non-russian func developers here :)
V
01:58
Vladislav IT
it's never too late to learn Russian and come to visit
i
03:40
isoscele 💎
In order to check if a wallet has a nft from a specific collection, should I ask to every nft of the collection for their owner address and compare it with wallet address or is there a faster way?
t
04:22
talkol
In reply to this message
There are some API services that index this information for fast queries, for example https://tonapi.io/docs
i
04:27
isoscele 💎
In reply to this message
Thank you! There's an access point called getNftItemsByOwnerAddress that may work well for me. Anyway the idea behind this is to save locally the owners of every collection periodically right? There's no other way, starting from an address to get its nft?
t
04:29
talkol
Yes, these services normally index every block on the chain to see who holds what. So they run on every block and find the deltas
04:29
There’s no way to get from the chain directly all the NFTs of an address
04:30
You can either ask all collection items periodically or index every transfer which is what they probably do in tonapi
RB
07:36
Roy Blankman
so if i wanted to get TON without any centralized services or kyc i'd buy some ton erc20 on uniswap and then bridge to the TON chain?
SE
07:44
Semyon Elnikov
Can I send zero TONs in internal_message?
Its okay?

I Just dont want use external_message for governance requests
t
19:16
talkol
In reply to this message
yes, although if you're willing to use a credit card there are services that will sell you some like that
19:17
In reply to this message
you're trying to avoid the gas payments?
NN
19:20
Nick Nekilov
In reply to this message
Just accept a message but don't send any messages from recv_external.
Y
20:11
Yashar
In reply to this message
Thank you @talkol
I just read your article comparing TON to EVM. It's a pity they never explain it clearly in the official documents. It cleared so much for me
20:12
I can only think about how difficult implementing the roll backs would be
20:13
And I suppose everyone should consider adding a "replyTo" sort of field in their contract methods
20:13
Or is there a better way to get around it?
20:16
Also, what does it mean to pay rent for the contract? I have recently created a wallet on TonHub. Does it mean they are putting a small amount of TON aside to fund the wallets? And also does it mean I will loose my tokens if I don't touch my wallet for a long time?
t
20:18
talkol
In reply to this message
With a wallet contract, rent is very simple, since rent is paid in TON and your wallet is a contract that holds TON. So tiny amounts of TON are reduced from your balance. 0.1 TON should be enough to fund your wallet for a long time so I wouldn’t worry about it
20:19
If you create a dapp that stores state, this dapp contract will need to pay rent so you make sure this contract is holding little TON in its balance
20:20
Normally we just make sure it has 0.1 TON and that’s enough for a long time assuming you don’t hold too much state
Y
20:22
Yashar
By a long time do you mean 1+ year or 10+ years?
I am aware that the blockchain gas price can change but let's assume the current cost
t
20:22
talkol
You will never lose your TON wallet contract as long is has TON inside since there’s always enough for rent. For Jettons (ERC20 parallel), you don’t necesssrily have TON balance in the contract so there if the balance will reach zero you will “lose” your tokens. In reality, the moment you send some TON there your balance will be recovered
20:23
In reply to this message
I think it will be good practice to multiply the numbers on ton.org/docs and see, let’s check if the docs are clear enough
Y
20:28
Yashar
Cr — The total price of “reading” cells (i.e., transforming cell refer-
ences into cell slices). Currently equal to 100 or 25 gas units per cell
depending on whether it is the first time a cell with this hash is being
“read” during the current run of the VM or not.
20:29
• Cw — The total price of creating new Cells from Builder s. Currently
equal to 500 gas units per cell.
77
t
20:30
talkol
@doronavgy can you help with the math?
20:31
You need the rent price, not the execution price
20:31
Rent is paid even when your contract doesn’t receive any transactions
Y
20:32
Yashar
Yeah I couldn't find it. There was no mention in the gas section. The word "rent" returned no results
t
20:37
talkol
Try the white papers
DS
20:38
Dmitry Shanin
In reply to this message
Is this storage fee or something else?
Y
20:39
Yashar
In reply to this message
TonHub showed me a balance of zero until Ton contest sent some 0.0001 to test if the wallet exists. Does it mean TonHub had already deployed my wallet?
20:40
In reply to this message
I think storage fee. And apparently it increases if your contract holds more and more data
t
20:41
talkol
In reply to this message
No, your wallet contract that was not deployed received some TON in its balance. But it’s not usable until you deploy your contract. So the balance was “waiting” for the deployment.
20:46
Normally when you start using a wallet app, it will deploy your wallet contract automatically as soon as you make the first outgoing transaction
Y
20:47
Yashar
In reply to this message
Where is it waiting? In your article there was the issue of unbounded data.
t
20:48
talkol
In reply to this message
You can’t have unbounded per one contract. Here your wallet contarct is one contact and the data is a few bytes
20:49
So it’s a fixed amount of storage per contract, it’s not related to the unbounded problem :)
20:50
You are correct that with ERC20, but then TON architecture made sure that each user’s ERC20 balance is in a different contract
20:50
So again, even with Jettons the amount of storage per contarct is fixed
20:52
In reply to this message
Just like on Etheruem, TON maintains a map of TON balance per address. Your future contract has an address so the address is well known, but it’s not deployed yet. You can still have a non-zero balance in the map in this case.
20:53
So everybody sending you TON can calculate your wallet address regardless if it’s deployed or not
Y
20:53
Yashar
Oh I see,, so the balance is not held inside the contract. It is something native that is tracked by the platform
t
20:55
talkol
Yes, for TON balance
Y
20:56
Yashar
In reply to this message
Can you also comment on this?
t
20:56
talkol
In the ERC20 case (Jettons), if you’re sending a Jetton to somebody that doesn’t have a Jetton wallet deployed (they never received any yet), then your act of sending will deploy their wallet
20:57
🤯
20:57
I need to write a post about this, it’s an interesting topic
Y
20:57
Yashar
Yes I get it now. Thanks a lot 😊🙏
t
20:58
talkol
In reply to this message
You do roll backs but they’re not too crazy. I’m not familiar with any magic solution. It’s patterns that you learn once and apply in many places in the same way. We’re working on an AMM GitHub.com/TonSwap you can see how the rollbacks look like there
SF
21:01
Slava Fomin
In reply to this message
Great article, by the way 👍

A small typo though:
rafty DoS vulerabilities
t
21:01
talkol
In reply to this message
Oh thanks!
SF
21:21
Slava Fomin
In reply to this message
I was talking about the last word :)
d
21:23
doni
In reply to this message
taking an example from jetton-wallet code

int min_tons_for_storage() asm "10000000 PUSHINT"; ;; 0.01 TON

int gas_consumption() asm "10000000 PUSHINT"; ;; 0.01 TON


the cost of renting 1 cell is 0.01 Ton
the cost of the computation is also 0.01

so the contract has the responsibility of maintaining the storage fee plus the execution fee ,
its also a common practice to make sure the outgoing messages have enough ton to pay for the future execution

also each message has the cost of fwd fee , so each message has to pay fee a fwd fee per message
t
22:30
talkol
rent is calculated per block, for how long does 0.01 TON is enough?
22:30
how many blocks?
l
22:46
lookin
@yankeexlr check dm
L
23:39
Lexx
Hello. Guys, how can i get all ntfCollections data in TON. TonWeb.token.nft.NftCollection need address, but i need all of them
15 July 2022
t
00:21
talkol
In reply to this message
getNftCollections in https://tonapi.io/docs may be helpful
i
08:13
isoscele 💎
In reply to this message
Typo Solidiy
08:13
And that was a good read. Thank you 🥰
i
08:35
isoscele 💎
In reply to this message
The asynchronous architecture doesn't allow us to instantly receive return of get functions of other contracts. So we have to wait a block for each consecutive async call because messages have travel time right?
t
11:36
talkol
In reply to this message
Yes, messages are not synchronous. They’re like new transactions. They’re not processed within the flow of the current transaction. If we’re lucky they might be processed in the same block, but if we’re not lucky they’ll only be processed in a future block.

Some flows, like the DEX flow @dariolol mentioned have as many as 9 messages. This will sometime take a few blocks
D
11:40
Dario
In reply to this message
for now, everything has been alway processed in the same block
i
11:44
isoscele 💎
In reply to this message
Shouldn't this be something scary? This way the architecture implicitly forces you to have monolithic smart contracts that do all the job and don't interact each other. Or couldn't this open up to redundant smart contracts get functions that calculate the information all over again instead of asking it to another smart contract cause in the long run may take more time?
t
11:46
talkol
In reply to this message
I corrected my answer to sometime, very interesting!
11:46
But I assume some other peoples messages can fit between yours so developer should never make assumptions on atomicity
11:50
In reply to this message
Monoliths can’t work, the architecture “forces” you to shard. Because of the unbounded data structures part. So even simple ERC20 is actually many contracts. One contract parent. And one contract per holder to hold their balance.

I would say it’s a different way to think. It’s scary at first but you see it’s not that bad.

Instead of pulling information, it works by push. One of your contacts pushes the data to the next one.

@dariolol has a good experience with a pretty complex flow of Jetton to Jetton swap in a dex
d
12:14
doni
In reply to this message
Right now there is only 1 shardchain , so we dont get cross shard messages … once the chain will be sharded we will start to get cases where the x messages spread over multiple shards
t
12:19
talkol
In reply to this message
Good point!
D
12:33
Dario
In reply to this message
true, but still this is an extreme case and even in that case the dex should work in a couple of block. 9 (actually 8 excluding the callback that carry excesses) messages are a good number for a dex swap
12:35
i mean, i like the logic "lowest possible messages is better" but we shouldnt be afraid of multiple messages, this is the only way to scale the contracts. even the transfer itself requires 5 transactions
t
12:36
talkol
Definitely
12:41
Anyone here who likes to write, please submit posts to society.ton.org

We need more dev community content in English

It’s very easy to submit, just write it in markdown on GitHub gist:
https://gist.github.com/talkol/c65e583a184261453156af1924021580

And send to them by email (society@ton.org) or Telegram (https://t.me/tonsociety_chat)

It’s a good opportunity to get visibility for your dev team and share what you’re working on
J
23:55
Justin
In reply to this message
thank you - fixed
16 July 2022
J
00:01
Justin
In reply to this message
Thank you - fixed
J
01:33
Justin
In reply to this message
Kirill Malev pinned this message
AT
06:35
Andrey Tvorozhkov
In reply to this message
👍
l
06:35
lookin
In reply to this message
👍
s
15:18
sepehr
In reply to this message
source code?
i
15:19
isoscele 💎
In reply to this message
idk if there's a library for this but here it is the docs https://help.crypt.bot/crypto-pay-api
s
15:20
sepehr
In reply to this message
tnx
22:39
Deleted Account
#Question
can i implement Ton Payment in my website now? I want users to be able to pay by Ton in my website and application.
please guide me.
SF
22:54
Slava Fomin
In reply to this message
You probably don't need TON Payments for this. You can use normal TON transfers. Please look at the TonWeb examples.
22:56
In reply to this message
Hey, guys. It would be better not to overwrite the pinned message with the chat rules and common links, but instead to add information to it. Otherwise newcomers won't be able to find this important information.
23:00
Deleted Account
In reply to this message
Is there any tutorial for implementation in nodejs?
17 July 2022
SF
00:03
Slava Fomin
In reply to this message
I'm not aware of such tutorials, sorry. But the examples should have most of the things you need. And you can always ask if you have questions.
00:47
Deleted Account
In reply to this message
Do you have a website that supports Ton payment?
NN
00:54
Nick Nekilov
In reply to this message
onlygrams.io (testnet)
SF
03:32
Slava Fomin
In reply to this message
Why do you ask?
13:00
Deleted Account
In reply to this message
Sorry, i mean: Do you know a website that supports Ton payment?
K
13:14
Kaio_toxik
Hello. How can I get the ton address from a seed-phrase?
SK
13:30
Sergey Khaylov
Seed phrase? Maybe mnemonic,? 12 word's
K
13:36
Kaio_toxik
In reply to this message
yes. mnemonic. 24 words
SK
13:41
Sergey Khaylov
async function getWallet(mnemonic) {
const keyPair = await mnemonicToKeyPair(mnemonic);
const wallet = ton.wallet.create({publicKey: keyPair.publicKey, wc: 0});
const address = await wallet.getAddress();
const data = address.toString(true, true, true, false);
console.log(data);
}

getWallet(myMnemonic);


I did it like this
13:42
const TonWeb = require('tonweb');
const {generateMnemonic, mnemonicToKeyPair} = require('tonweb-mnemonic');

const nacl = TonWeb.
utils.nacl;
const {NftCollection, NftItem, NftMarketplace, NftSale} = TonWeb.
token.nft;
const tonProvider = new TonWeb.
HttpProvider('https://toncenter.com/api/v2/jsonRPC', {apiKey: ....});
const ton = new TonWeb(tonProvider);
K
13:46
Kaio_toxik
In reply to this message
ive tryed to do like this, but wallet returned incorrect address. thankyou anyway. may be ive done something wrong.
SK
13:47
Sergey Khaylov
show me your correct address
13:48
maybe problem with isBounceable flag?
13:49
address.toString(true, true, true, false);
try to change this boolean flags
K
13:49
Kaio_toxik
In reply to this message
const keyPair = await tonMnemonic.mnemonicToKeyPair(mnemonic);
const nacl = TonWeb.utils.nacl; // use nacl library for key pairs
const tonweb = new TonWeb();

let walletm = tonweb.wallet.create({publicKey: keyPair.publicKey, wc: 0});
address = await walletm.getAddress();
const BounceableAddress = address.toString(true, true, true);
let fileContent = fs.appendFileSync('seeda.txt', mnemonic + '\n' + keyPair.publicKey + '\n');

console.log(mnemonic + '\n' + keyPair.publicKey + '\n'+ address.toString() + '\n'+ BounceableAddress + '\n' + '\n' + '\n');
13:49
just don't laugh. this is my first program😐
SK
13:52
Sergey Khaylov
@prim_user I'l think your code is ok
K
13:54
Kaio_toxik
In reply to this message
☺️❤️
13:55
returns something like this......, swear,garden,post,balance,grain,chimney,law,sphere,inner,mutual,foil,borrow,page,six,recycle,jewel,lemon
55,40,226,246,233,16,71,253,68,216,43,17,51,56,211,199,209,146,202,38,51,79,201,85,200,138,121,44,68,81,248,107
EQDIqD_7040evZRUw3ySQ_Kr9fg-bf3gaS5iI-vlPm_9jVuc EQDIqD_7040evZRUw3ySQ_Kr9fg-bf3gaS5iI-vlPm_9jVuc
SK
13:57
Sergey Khaylov
After 107 - your wallet address
K
13:57
Kaio_toxik
thats bad example. 1 moment please
14:01
that actual answer ///,garden,post,balance,grain,chimney,law,sphere,inner,mutual,foil,borrow,page,six,recycle,jewel,lemon
55,40,226,246,233,16,71,253,68,216,43,17,51,56,211,199,209,146,202,38,51,79,201,85,200,138,121,44,68,81,248,107
0:2dac686d785dd2d77c3d4baf1a688c7ca0ab7db94ddd03331d282e09000a0d47
EQAtrGhteF3S13w9S68aaIx8oKt9uU3dAzMdKC4JAAoNR3lM —- incorrect address(
14:02
looks like it create new address here let walletm = tonweb.wallet.create({publicKey: keyPair.publicKey, wc: 0});
d
14:14
doni
Does anyone have an example of running mytonctrl on a private netwrok ?
SK
14:17
Sergey Khaylov
In reply to this message
I'll think it's ok. Two different address representation
K
14:21
Kaio_toxik
In reply to this message
I thought so too until I got this address EQAtrGhteF3S13w9S68aaIx8oKt9uU3dAzMdKC4JAAoNR3lM. correct address is QDIqD_7040evZRUw3ySQ_Kr9fg-bf3gaS5iI-vlPm_9jVuc. maybe it's a different representation. I will think further. thanks for your participation
SK
14:22
Sergey Khaylov
In reply to this message
Good luck. Sorry for my English)
K
14:23
Kaio_toxik
In reply to this message
sorry for my too😁
SF
15:50
Slava Fomin
In reply to this message
Each address in TON could be represented in nine different formats.
i
19:49
isoscele 💎
yo if i use toncli is it necessary to define the storage structure via a fif file or the storage is automatically learned watching at save data function of func?
o
19:57
oxlti.qube
In reply to this message
Use my address for burning
P
20:00
Purple
In reply to this message
0:00000000000000000000000000000000000000000000000000000000000ab0ba
DV
20:01
Dan Volkov
In reply to this message
0:0000000000000000000000000000000000000000000000000000000000ebac0c
DV
22:21
Dan Volkov
In reply to this message
Yep
22:22
You can use any random address as a burn address
NN
22:24
Nick Nekilov
Talking about jettons, you may use a standard method burn but not to do weird extra-movements.
18 July 2022
A
16:01
Alexandr
Hello! Could anyone please help me with the pytonlib?
I can't understand how to create a TON address, how to check is there any transactions related to this address and how to create transactions. The documentation to this lib have nothing about this common operations :(
t
20:58
talkol
I'm doing a lot of thinking of how to make FunC easier for new developers. I came up with this proposal for a footstep: https://github.com/ton-society/ton-footsteps/issues/26

Will appreciate feedback
D
21:01
Dario
In reply to this message
I tried to do this in the past and i came with

https://github.com/TonoxDeFi/math.func

And https://github.com/TonoxDeFi/utils.func
21:01
I hope its useful to someone
t
21:02
talkol
@dariolol can you please add this comment in the issue? I think it's a good example
D
21:04
Dario
Sure
NA
21:05
Narek Abovyan
In reply to this message
Great idea, i had this footstep in plans ;)
S
21:29
Semion
Hi. I try to deploy my contract in main net, but I get an error «Account ___ has low balance to deploy.»
This account has 1.5 TON balance. What amount of TON is enough for deploying?
S
21:46
Semion
In reply to this message
Can anybody help with that?
t
22:33
talkol
In reply to this message
1.5 TON is usually much more than you need to deploy. What tool are you using for deployment?
S
22:35
Semion
In reply to this message
tondev

I call "tondev contract deploy test.abi.json -s mykeys"
AS
22:36
Aleksandr Shepelev
In reply to this message
wrong blockchain :)
S
22:37
Semion
What's the right one?
AS
22:39
Aleksandr Shepelev
In reply to this message
tondev is everscale (ex free ton) tool, this chat is about ton blockchain
S
22:44
Semion
In reply to this message
How to deploy in ton Blockchain?
t
23:04
talkol
In reply to this message
There are 3 ways I’ve seen around:

1. Write a script in TypeScript to deploy, that’s my favorite way, example: https://github.com/ton-defi-org/tonstarter-contracts/tree/main/build

2. Use toncli command line tool: https://github.com/disintar/toncli

3. Write a Fift deployment script, but then you need to learn Fift 😅
o
23:07
oxlti.qube
Is it too dangerous to use everscale compilators for TON?
t
23:08
talkol
Probably so, isn’t most of their dev done in Solidity-ish?
o
23:08
oxlti.qube
In reply to this message
Yes, Solidity and other popular languages
23:09
In reply to this message
But their ecosystem is doing well, probably we can use it , then audite the code.
AS
23:10
Aleksandr Shepelev
> their ecosystem is doing well
go there :)
t
23:11
talkol
In general, the EVM state of mind is very different from TON state of mind so we encourage learning the TON native way instead
NN
23:11
Nick Nekilov
In reply to this message
No, but it'll require additional knowledge.
Also this compiler supports few EVER-only instructions which should be avoided.
o
23:12
oxlti.qube
In reply to this message
Oke, what about EVM workchain in 2023?
t
23:12
talkol
It may exist but it won’t be scalable like native TON
23:12
There are inherent things preventing EVM from scaling
o
23:13
oxlti.qube
In reply to this message
Why not? EVM chains like Avalanche are still fast
t
23:13
talkol
Not really, they’re not sharded because all contracts assume all data is found on the same machine
o
23:14
oxlti.qube
In reply to this message
Avalanche is multichain :/
t
23:14
talkol
In reply to this message
Read this: https://society.ton.org/six-unique-aspects-of-ton-blockchain-that-will-surprise-solidity-developers

TON is different from every other L1 out there, to achieve its sharding the contract developer must implement sharded contracts
o
23:14
oxlti.qube
In reply to this message
Do you have some info about workchain communication? Will it work like Cosmos IBC and Polkadot XCMP?
t
23:18
talkol
With Everscale, we can do a security analysis and I bet that we can show a problem with their native ERC20. Is their ERC20 Solidity-ish implementation sharded on a new contract per balance? I bet they hold all balances in one contract like the Ethereum way. This means an attacker can write keys to the map continuously until some poor account is so deep in the tree that it can’t be updated anymore since gas for updates costs in proportion to the height of the cell tree
23:18
This could be a very nice answer as to why we don’t try to force EVM notions on TON
23:19
We should create a footstep for this 😂
o
23:19
oxlti.qube
In reply to this message
?
D
23:19
Dario
In reply to this message
> Its wrong


Done, its 20°000 TON.
S
23:29
Semion
In reply to this message
Thanks 🙏
SF
23:38
Slava Fomin
In reply to this message
This looks like a wonderful idea, not only such code will be easier to read, it will probably be more secure, because each library function will be reviewed by the experts and will stand the test of time. However, I'm not FunC developer, so I wouldn't know how much of the boilerplate could be extracted this way. But conceptually the idea looks very cool 👍🏻
K
23:54
Kaio_toxik
Hello. Does anyone know / can show an example of how to get the wallet address from the mnemonic?
t
23:56
talkol
In reply to this message
Start with this library to get the public and private (secret) key from the mnemonic: https://github.com/toncenter/tonweb-mnemonic
23:58
Then use this library to get the wallet address from the keys: https://github.com/toncenter/tonweb
19 July 2022
t
00:00
talkol
If you just want to read data, the public key is enough. If you want to write data (like send transaction) then you will need the secret key
K
00:03
Kaio_toxik
In reply to this message
thank you very much.Ill try this
t
00:04
talkol
Notice that there is one nuance, the wallet address is derived from the public key + the code of the wallet
00:04
There are multiple wallet codes that people use (V2, V3, V4) so each of them would have a different address
00:05
Normally you see code trying all of them to see which one is deployed
K
00:06
Kaio_toxik
In reply to this message
Maybe that's why I didn't get the right result.
00:07
In reply to this message
const keyPair = await tonMnemonic.mnemonicToKeyPair(mnemonic);
const nacl = TonWeb.utils.nacl; // use nacl library for key pairs
const tonweb = new TonWeb();

const walletm = tonweb.wallet.create({publicKey: keyPair.publicKey, wc: 0});
address = await walletm.getAddress();
00:08
this code returns incorrect address
00:10
In reply to this message
how to change the wallet code?
00:13
i change wc: 0 to wc:3, but it return "if (wc !== 0 && wc !== -1) throw new Error('Invalid address wc ' + anyForm);"
t
00:13
talkol
First, let’s make sure it’s the incorrect address because there are several ways to encode the same address
SK
00:14
Sergey Khaylov
In reply to this message
address.toString(true, true, true, false)
t
00:14
talkol
Put the address you got in a block explorer and see it leads to the correct wallet
00:15
Or put the address here https://ton.org/address/ to compare the public key hex, that’s unique
00:15
If you don’t have the correct address, then probably the wallet code is from a different version
K
00:16
Kaio_toxik
In reply to this message
public keys are different😕
t
00:17
talkol
Open the real wallet address in TonWhales block explorer, it will show you the code. For example: https://tonwhales.com/explorer/address/Ef-KJp9REa0zDgaM6f3JW--e9gKDg1_udGBtzUVtTahmoY3t
00:17
You see on top it says “Wallet V3 (r2)”
00:17
That’s the code the wallet is using
00:18
When you put your correct wallet address in the explorer, what wallet code do you see?
K
00:19
Kaio_toxik
In reply to this message
V3 (r2)
t
00:19
talkol
What chain? Master chain or work chain?
K
00:20
Kaio_toxik
In reply to this message
Basic Workchain
00:21
and the address that returns with the address = await walletm.getAddress(); shows Contract Type unknown contract
00:22
🤯
t
00:22
talkol
Are you sure this is the correct mnemonic?
K
00:22
Kaio_toxik
In reply to this message
100%. thats my address
t
00:23
talkol
Ahh I see
00:23
It’s indeed not the default of TonWeb
00:23
The default for TonWeb is V3r1
00:24
Ok, let’s fix it
00:27
Create instance not of wallet, but of WalletV3ContractR2 instead and let’s see if it works
00:27
TonWeb API is super confusing. 🤦‍♂️ Personally I’m using ton npm which has a slightly more friendly API
00:29
If you want the slightly friendlier API that handles the multi version mess automatically, you can switch from TonWeb to this: https://github.com/tonwhales/ton
K
00:31
Kaio_toxik
In reply to this message
Im new in node.js, but I think that ill win it. 😁 thank you very much.
t
00:34
talkol
The last package has code that goes over all the versions and tries to find which one you have: https://github.com/tonwhales/ton/blob/master/src/client/Wallet.ts#L113
00:35
So you don’t need to do the manual check we did in the block explorer in the beginning
00:35
I think I’m going to write a post about it, it’s confusing AF
00:38
@prim_user write here if you can’t manage to get it working
05:32
In reply to this message
Yes please & please let us know with a link ))🙏
t
19:11
talkol
In reply to this message
@prim_user @abc9e @triangoloisoscele

I wrote the promised blog post! It's pretty cool. It explains all the weird stuff about wallets and it shows how to use a wallet from JavaScript both with TonWeb JS library and with npm ton JS library (they are both very similar, you need to choose one):

https://gist.github.com/talkol/c5e8275ff5bcb87c96d1e78135c5b12b

I submitted it right now to society.ton.org, I hope they will publish it soon. In the meantime, you can read the gist on GitHub.

Let me know if you have any feedback or anything is unclear.
20 July 2022
i
07:20
isoscele 💎
In reply to this message
Good read! What is tonweb sendmode?
JY
11:15
Jins Yu
https://ton.org/docs/#/func/statements?id=binary-operators
There are 3 integer div operators. Can you explain details? I want to know which one is ceilDiv.
M
12:54
MetaJedi • NFT
Hi there! We are looking for Ton devs who can create tg-bots for NFT mints. Dm please
D
14:27
Dima
Hello! We need a Symphony Docker Kubernets specialist to help update the code + make new tasks
Rate: 13-18$
i
14:28
isoscele 💎
This keeps happening when i try to connect to the testnet via toncli liteclient. mainnet works properly

edit: ok apparently i had an old version of testnet global config. Downloaded new one and everything works ok
t
14:38
talkol
In reply to this message
good question, I see that TVM supports multiple rounding methods: https://ton-blockchain.github.io/docs/tvm.pdf in section A.5.2. I'm not sure what FunC does under each of the three operators.. can you test and see? and then a PR to the documentation is in order :)
D
14:39
Dario
In reply to this message
Divc
14:41
(int) divc (int x, int y) asm "DIVC";
OB
14:42
Oleg Baranov
New release version of Golang TON library, v1.0.3!
https://github.com/xssnick/tonutils-go

Changelog:
1. Big refactoring, better usage experience
2. More unit tests + e2e tests
3. Connect using config url (by @TrueCarry)
4. Better nods balancing in connection pool
5. Sticky context to bound requests to same node
6. Dictionary creation support
7. Load/store signed integers
8. Long comments support
9. TLB stack reimplemented in a better way
10. Sub-wallets support for v3 and v4
11. FIFT hex in dump cell method
12. Many minor improvements and fixes
13. Readme reworked a bit
14. All types of addresses support

It has passed many tests with mainnet, and unit + integration test coverage is higher than 70%. So I decided to make it v1 😄

But it doesent mean that developmeent is stopped now, Im just considering this library as stable, and will be less incompatible cahnges.
T
14:49
Ton Card 🇮🇹🇬🇧
In reply to this message
Nice🚀💎❤️‍🔥
i
15:27
isoscele 💎
Is it possible to initialize the data storage of the contract with certain values via toncli? for example seqno as 5
18:03
Deleted Account
Hello there, is all ton blockchain development done in this repository?

https://github.com/ton-blockchain/ton
T
18:06
Ton Card 🇮🇹🇬🇧
In reply to this message
AP
18:55
Andrey Pfau
In reply to this message
firstly, development takes place not only in this repository. ton-blockchain/ton repository refers mainly only to software for validators. You can check the testnet branch, there is a more active history of comits. Also look at the other repositories of the ton-blockchain organization, there are also a lot of active comits
t
18:56
talkol
In reply to this message
The blockchain is not developed in a single repo. We’re building an ecosystem, there are many different parts. For example Payment Channels and TON DNS are among the newest big features on TON and they’re not in this repo.
18:57
If you’re looking for big feature release activity, it would be better to judge according to feature announcements and not commits in the validator node repo: join this channel to see the feature announcement: https://t.me/toncoin
19:00
Just looking for big feature announcement from the last few days you can see TON DNS (the auction starts in 10 days) and TON Payments. Both of them huge features that I doubt Solana released anything of this magnitude in the last month.
19:03
TON is not just a blockchain, in the roadmap you will see elements like TON Storage that is comparable to IPFS and FileCoin, huge projects in their own right. TON DNS is in the magnitude of ENS. We’re just in the beginning here :) this is probably the most ambitious project around
D
20:06
Dima
Hello there! We need a Symphony Docker Kubernets specialist to help update the code + make new tasks
T
20:58
Ton Card 🇮🇹🇬🇧
Ton Dns 😏
21 July 2022
JY
10:10
Jins Yu
Is there any way to store 'tuple'? In case of 'cell' I can use store_ref for storing.
I can use 'nested cell' instead of tuple, but I prefer to use tuple itself
Y
11:15
Yashar
In reply to this message
With the DNS we still need to configure something on our browsers right?
DS
11:45
Dmitry Shanin
In reply to this message
Sure. I guess, we will need to install some browser extension or run some standalone software to proxy requests through, since we need ton dns name resolution and ton sites underlying protocols like adnl and rldp are not supported by browsers natively.
t
12:35
talkol
In reply to this message
The idea behind the browser extension or proxy is to add more important behaviors to websites like privacy (both for visitors and publishers). TON DNS is just sugar on top.

In the future, I imagine TON foundation will also be able to purchase the IANA TLD .ton (it costs about a million dollars so not too bad), just like Amazon bought .amazon TLD and then you will not need an extension. I’m not aware of a current plan to do it, but if I were them this is what I would do.
i
14:38
isoscele 💎
Are there any monitorings of time between transaction boc send and transaction actually inserted in chain?
14:39
Or the mean time idk
t
14:48
talkol
In reply to this message
Why would you need that? The network is significantly more scalable than current load, so every tx should enter a block within 1 block max 2 blocks which means 5-10 seconds
D
14:49
Dario
@rulon where is defined the 16kb limit for bocs?
i
14:50
isoscele 💎
In reply to this message
I don't like odd numbers so I want my transaction to be in a good even blocks
SH
14:51
Seitaro Higuchi
In reply to this message
Boc itself is not limited in size. Actually whole blockchain state is a cell (everything is a cell :) ). However size of the external message is limited by 64kb (previous time i made a mistake when said that limit is a 16kb).
D
14:51
Dario
In reply to this message
okay but i cant find this limit in parameters
14:51
is this a limit implemented in lite servers?
14:52
or clients themselfs
D
14:52
Dario
oh
14:52
okay, thanks
14:54
is it planned to move these limits in the network configuration? it would be nice to have a chain to store big data
SH
14:55
Seitaro Higuchi
In reply to this message
Yeah, probably it is a good idea to move these params to network config.
D
14:56
Dario
also, the snake algo is not that efficient for storing data, maybe its better to move to another implementation that uses all the tree to store data
AT
14:56
Andrey Tvorozhkov
In reply to this message
Interesting to create chunk upload of big data into chain :)))
D
14:56
Dario
In reply to this message
i already made it, but sadly i cant update the entire morbius film to the blockchain due to size limits :(
NN
14:57
Nick Nekilov
In reply to this message
Linux ISOs
AT
14:58
Andrey Tvorozhkov
In reply to this message
Maybe need to create several smart contracts :)))
D
14:58
Dario
In reply to this message
makes sense since the address itself would verify the integrity
AT
14:58
Andrey Tvorozhkov
1 smc = 1 big chunk
o
15:05
oxlti.qube
Hey @rulon !
Can you help me with bridge oracle?
We don’t know how to make a oracle for our ETH/TON bridge in the GitHub I only can see justification of oracle’ work. Thank you.
15:05
Is there any code of ton bridge’ oracle?
SH
15:14
Seitaro Higuchi
In reply to this message
Oracle software is not open-sourced.
o
15:21
oxlti.qube
In reply to this message
will it open source?
t
18:02
talkol
If you're building a bridge Oracle, I believe you can find open source projects that implement this behavior and learn how they work. They will probably be EVM-EVM so you will have to translate one side to TON

For example Ronin is Axie Infinity's side chain which has an EVM-EVM bridge and is implemented mostly here and not too complicated:
https://github.com/axieinfinity/ronin-smart-contracts

There is also this project: https://docs.tokenbridge.net/amb-bridge/about-amb-bridge

There should be literally dozens. All open source so you can review their implementation and understand the architecgture.
d
21:59
doni
In reply to this message
i guess ton storage should solve that once it is released
22 July 2022
D
18:03
Dean
func -APS -o counter.fif counter.fc
counter.fc:4:12: error: undefined function get_data, defining a global function of unknown type
var ds = get_data().begin_parse();func -V
FunC semantic version: v0.2.0
Build information: [ Commit: a9ba27382c7f25618323356b9f408281c6c27704, Date: 2022-05-25 23:27:36 +0300]
fift -V
Fift build information: [ Commit: a9ba27382c7f25618323356b9f408281c6c27704, Date: 2022-05-25 23:27:36 +0300]
18:05
Running the sample code: (int) load_data() inline {
var ds = get_data().begin_parse();
return (ds~load_uint(64));
}
18:09
I guess I must be missing fiftlib ..
18:23
I will install with yarn instead
18:33
alright now I am getting a different error:
18:35
ton-compiler --input ./counter.fc --output ./counter.fif --fift
[ 1][t 0][2022-07-22 15:32:09.922178][Fift.cpp:67] top: <text interpreter continuation>
[ 1][t 0][2022-07-22 15:32:09.922234][fift-main.cpp:204] Error interpreting file `/var/folders/fv/gb5km3q121qg2pr6zpvmgvkr0000gn/T/tmp-
18:37
counter.fc is just a few lines of code:
(int) load_data() inline {
var ds = get_data().begin_parse();
return (ds~load_uint(64));
}
18:38
I am on MacOS Monterey 12.3
18:40
and I get more or less the same for an empty file as well
t
21:15
talkol
There are a bunch of things going around it seems
21:16
First, are you trying to compile with the JS library ton-compiler or are you trying to compile manually with func executable?
21:17
In order to isolate the issue I recommend you work with func executable for now, so please try to avoid ton-compiler for now
21:18
In reply to this message
This error is not about fiftlib missing, you are missing the stdlib.fc dependency
21:20
In this tutorial https://society.ton.org/ton-hello-world-step-by-step-guide-for-writing-your-first-smart-contract-in-func please search for “stdlib.fc” and make sure you do the related part (the “cat” part)
D
21:42
Dean
In reply to this message
Yes, that was the issue. Been a while since I worked with C. Does FunC support “.h” files for any of this? or that’s not recommended?
D
22:10
Dean
Does TON plan support for tokens similar to ERC-20? Is there a way to have a utility token for example?
AP
22:12
Andrew Python
In reply to this message
https://github.com/ton-blockchain/TIPs/issues/74

upd:
I also advise to read this, paragraph Rationale
D
22:17
Dean
Ok, I will have a look. I notice some blockchains are supporting tokens as standard in-built assets while others represent them exclusively through smart contracts.
AP
22:20
Andrew Python
In reply to this message
TON also has support for built-in tokens, but it will be used for very important tokens (or will not be used at all)
23 July 2022
t
01:38
talkol
The native tokens in TON require validator consensus for approval IMO so they’re not for users to spam their own like ERC20. Jettons on TON are just like ERC20, anyone can launch their own in seconds, see for example https://jetton.live, and can customize their behavior in code like ERC20. I hope we will see native tokens in TON used for the important future tokens like USDC/USDT.
C
01:51
Cerbero
where is the selling price of an nft stored?
i simply want to know the price of an nft using toncenter or tonapi
01:55
I can only get the price when it has been sold
01:55
but I want to know its price before it is sold
NS
02:11
Nineim SecTwo
In reply to this message
+
m
11:31
muran
hi
16:31
Deleted Account
Where can I report a bug about TON wallet Linux version?
When I enter my key phrases it connects me to another wallet(tried few times) and not mine, I tried web wallet, tonkeeper and tonhub they're all working perfectly so I believe the problem is from Linux wallet.
VB
16:43
Vasilii Burykin
In reply to this message
It just opens another version of your wallet.

In the settings of the Tonkeeper, you can select the 3rd version (4 by default) and you will see the same address as on the Linux wallet.

Linux wallet has not been updated and does not support version 4

In short, your key phrase is several wallets at once
t
17:32
talkol
In reply to this message
Please read this post to understand the multiple version issue: https://society.ton.org/how-ton-wallets-work-and-how-to-access-them-from-javascript
17:34
Of course you can ignore the JS bit
M
20:40
Monster media
...Is it possible to transfer Toncoin in @wallet to Tonkeeper?
VB
21:40
Vasilii Burykin
In reply to this message
Yes
M
23:04
Michael
23:04
this is scam ?
23:04
how actualy i can register ton domain ?
24 July 2022
А
00:17
Андрей
In reply to this message
AS
10:28
Aleksandr Shepelev
In reply to this message
Well, it is not connected to ton dns in any way
м
17:17
максим
hey everyone. how to check nft selling price ?
25 July 2022
Я
10:00
Я твой Бог
Today we are launching DEX on TON in testnet

You can do it 😎 test )

https://testnet.tegro.finance

If you find bugs, errors, you can send them to @DeFiTON PM
TO
11:29
Tim O'Brien
In reply to this message
one solution might be the look at the poa bridgehttps://github.com/poanetwork/poa-bridge
18:58
賈思敏 | 0xJasmine
In reply to this message
cool!
t
19:07
talkol
In reply to this message
Did you open source your contracts? It will help with community audits
S
19:14
SVIATOSLAV
In reply to this message
No, code is closed while being tested
26 July 2022
M
06:11
Mikhail
Tell me, please, is it possible to specify the fee payer when sending Jetton tokens? those when sending tokens from one wallet to another wallet, the fee is paid by the third one. how to do this through tonweb lib?
d
09:20
doni
In reply to this message
the fee payer is all ways the sender,

the messages route in jetton transfer
wallet1 > jetton-wallet1 > jetton-wallet2 > wallet1

so wallet1 had to pay gas for all future messages

in case wallet1 paid too much gas the gas change will be sent back to wallet1 ( via the excess message)

this way you dont have to estimate the gas fee exactly.
M
10:26
Mikhail
In reply to this message
Thanks!
M
12:12
Mikhail
In reply to this message
Does TON plan to make this possible? For example, on the Solana network, you can do this.
d
13:01
doni
you can implement this method
13:01
but you will have to make sure the contract pays gas only for transactions from known addresses
13:02
otherwise it is a vurneabilty
M
14:51
Mikhail
In reply to this message
Tell me how can I specify the contract as a gas payer. I have a whitelist of addresses. Thanks 🙏!
Z
15:24
Zeleboba2
Hello, I made a library to work with Crypto Bot in python, check it plz
https://github.com/sllavon/crypto-pay-api-sdk
https://pypi.org/project/crypto-pay-api-sdk
d
16:00
doni
In reply to this message
basically using recv external means the contract pays the gas fees

in order to white list the users public key
you need to to add them to the contract state while deploying the wallet ( adding to state init )

not sure how many users you plan this for
16:01
the architecture is similar to a wallet with multiple owners
t
16:36
talkol
TON is indeed architected to support this behavior
M
20:13
Mikhail
In reply to this message
Do you have any example? I would be very grateful.
27 July 2022
D
16:44
Dude
In reply to this message
Http API
SF
17:36
Slava Fomin
SF
Slava Fomin 29.05.2022 23:49:09
READ ME!

This chat is for TON-related technical / engineering questions only! All unrelated messages will be deleted without warning.

Resources:

Documentation
Russian chat
TonCenter (TON HTTP API)
TonWeb (JavaScript library) and Examples
PyTONLib (Python library)

If you have funds stuck in the bridge, please contact the: @ton_help_bot.
SF
17:37
Slava Fomin
In reply to this message
Hey! Your better bet would be TonWeb, a JS library for TON. See the post above for the links.
17:39
You can create a node.js microservice and call it from your PHP code. This could even be a more secure approach.
28 July 2022
t
17:40
talkol
In reply to this message
IL
18:47
Ivan Lukyanov
Good day!
Please tell me if there is an Upgradeable standard for TON contracts? That is, is it possible, as in Ethereum, to deploy proxy-contracts and then upgrade them?
DS
19:53
Dmitry Shanin
In reply to this message
There is no need for ethereum-like proxy contracts in ton. Contract in ton can upgrade its code, without changing its address.
29 July 2022
AK
10:10
A K
Hello is there TON Proxy documentation anywhere? As release is scheduled at q3 2022, I expect there should be documentation or white paper.
10:12
And is there some source code examples or documentation how to connect to TON ADNL Network as a node? I aim to create side-chain in a TON network.
ЕЖ
10:30
Евгений Жуков
Hello, please tell me why I cannot check my account and withdraw my mined TON. I go to @WhalesPoolBot and I can't check my balance and send the mined TON, what should I do?
ПВ
10:34
Павел Веснин
Hi All. Is it possible to deploy a custom contract using tonweb and interact with it?
E
12:07
Emilia
The only wallet that supports staking is tonhub, but it is only mobile and closed source. The official open source and cross-platform (PC-web-mobile) TON Wallet does not support staking, NFTs and jettons.
Do you know if an updated version of the TON Wallet is in development?
Thank you
NN
12:22
Nick Nekilov
In reply to this message
Wallet is open sourced - https://github.com/tonwhales/wallet
12:23
Staking contract is also open sourced. You may work with it wherever you want.
ПВ
13:21
Павел Веснин
In reply to this message
Thank you!
A
14:38
Alex
Hello what the best way to get all nfts from a user address?
AK
14:40
A K
In reply to this message
Are there anybody in this chat who can consult on ton source code of a nodes and networking? We are looking for such consulting also on a payed basis.
E
15:35
Emilia
In reply to this message
Thank you I could not find any reference to github on the tonhub site. Why is TON Wallet so far behind in development?
NN
16:17
Nick Nekilov
In reply to this message
As I understand the goal is to keep it as simple and straightforward as possible.
E
16:27
Emilia
In reply to this message
Well, simple does not mean trivial. Jettons, NFTs and staking are core functionalities of any blockchain.
i
18:04
isoscele 💎
are dns auction contracts already public?
s
18:31
shahar
In reply to this message
July 30th, tomorrow
DJ
19:09
Davy Jons
Does the price of toncoin affect the price of its token created by jetton deployer?
30 July 2022
i
09:19
isoscele 💎
Out of curiosity, is it possible to handle events in smart contracts? For example at a certain time do something or there should always be an external or internal transaction to proc something?
DS
11:14
Daniil Sedov
to create a minimal jetton, do we need just that one jetton-wallet.fc file? or it must be deployed with some of the others too?
Яд
12:51
Язон дин Альт
Will there be yearly charges for TON DNS domain after purchasing one? How much?
Rm
13:11
Rasool mansoory
Hi guys
I have question
How can use ton payment in Telegram bot?
SH
13:11
Seitaro Higuchi
In reply to this message
There is standard storage fee only. However it is required for owner to "touch" dns-item at least one time per year, otherwise it can be forcefully released and new auction will start.
Яд
13:17
Язон дин Альт
In reply to this message
Thanks for help
t
14:35
talkol
In reply to this message
Open jetton.live it will explain to you how to create a jetton. If you want to deploy the code manually yourself, it includes a link to a GitHub repo designed just for that
DS
14:37
Daniil Sedov
In reply to this message
And I will need to edit these files to customize the jetton, right?
t
14:39
talkol
If you just want to choose a name and description there’s a convenient web UI in jetton.live so you don’t need to deal with code. If you want to change the logic then the GitHub repo has a project ready for deployment. Please read the README in the repo I linked above, it has very very thorough documentation
14:40
In reply to this message
Jetton customization happens in the initial state during deployment, most projects don’t touch the code itself
DS
14:40
Daniil Sedov
In reply to this message
By customisation I meant changing the logic
t
14:41
talkol
If you want logic like to add a separate fee during transfers then yes, the changes will be in these files
DS
14:41
Daniil Sedov
In reply to this message
Okay.

And by the way, if I don't need the minter contract, I can use only the jetton-wallet right?
t
14:41
talkol
But try your best to avoid doing that, or maybe add this logic in separate contracts that interact with the Jetton. What logic change do you want to make?
o
14:41
oxlti.qube
In reply to this message
Why do you promote this service too much
t
14:42
talkol
In reply to this message
No you need both
DS
14:42
Daniil Sedov
In reply to this message
Or does wallet somehow depends on jetton-minter?
t
14:42
talkol
In reply to this message
Minter is the parent and wallet is the child. There is one minter instance and N wallet instances (N is the number of holders of your token)
DS
14:43
Daniil Sedov
I thought minter contract is for the dev of the token to mint more of them?
t
14:43
talkol
In reply to this message
I promote it because it’s safe and follows important security practices that most people don’t know how to do themselves. This project is free and has no business model
14:44
If you don’t want rug pools in the community you need to educate what is expected of new projects, like revoking admin before launch
14:46
If you try the UI it will show you the security advisories regarding any Jetton that anyone launched
14:57
In reply to this message
The parent is indeed what you mint through but even if you close the mint functionality you still need the minter instance, it points to the metadata of the token and routes to the children
14:58
You are correct that the name is a bit confusing
Rm
14:59
Rasool mansoory
In reply to this message
Please help me
K(
15:00
KillTeamSeller (ᵇᵉᵗᵗᵉʳ ᵗʰᵃⁿ ᵘ)
In reply to this message
try @wallet
Rm
15:01
Rasool mansoory
In reply to this message
I want use payment in my bot
K(
15:01
KillTeamSeller (ᵇᵉᵗᵗᵉʳ ᵗʰᵃⁿ ᵘ)
In reply to this message
What do you mean?
15:02
Oh, check API.
Rm
15:02
Rasool mansoory
In reply to this message
Where?
K(
15:03
KillTeamSeller (ᵇᵉᵗᵗᵉʳ ᵗʰᵃⁿ ᵘ)
In reply to this message
15:05
15:05
15:05
15:05
15:05
only this support payments, but no TON
Rm
15:11
Rasool mansoory
In reply to this message
😢😢
DS
15:13
Daniil Sedov
In reply to this message
Okay, thanks
15:14
In reply to this message
Check documentation and write code
t
15:57
talkol
In reply to this message
TON has a sharded contract architecture which is quite unique. The balance of every holder is kept in its own contract instance. This allows the system to scale to billions of accounts
DS
15:58
Daniil Sedov
In reply to this message
I know about that
Rm
16:03
Rasool mansoory
In reply to this message
Where is documentation ?
DS
16:03
Daniil Sedov
In reply to this message
31 July 2022
VP
07:27
VALHALLA Pools
How can I withdraw the small amount remaining in the nominator pool after withdrawing both the staking amount of the nominators and validator?
S
17:07
SsNiPeR1
any way to create a private chain like i can on ethereum?
S
22:05
Shayan
22:05
Hey.
I keep getting a connection refused error when I run the lite client. Any idea what could be causing the issue?
i
22:06
isoscele 💎
In reply to this message
did you try updating the config file?
S
22:07
Shayan
In reply to this message
No I just tested the 2 config files that were available. didn't about the updating bit. How would I go about doing that?
i
22:07
isoscele 💎
In reply to this message
If you just downloaded them it's ok. There's nothing else to do
22:07
Then it's smth else
22:07
I had a similar problem to you and updating that fixed it
1 August 2022
S
00:19
Shayan
In reply to this message
u were actually right. I had an old config file. thanks.
T
10:49
TW/ VistaLabs
T
TON Status 29.07.2022 16:13:48
Network validators, on Aug. 2, it is planned to set the root DNS contract in the network config by voting — all validators need to participate.
T
10:50
TW/ VistaLabs
In reply to this message
how do i participate in the voting?
F
10:59
F
In reply to this message
mytonctrl -> vo
T
11:02
TW/ VistaLabs
In reply to this message
thanks for the response.
I see the usage message "vo <offer-hash>"

what 'offer-hash' should i put?
11:04
sorry, I am pretty noob at TON. is there a website or document i can check regarding this matter?
I don't fully understand about the action.
F
13:10
F
In reply to this message
Follow the channel, there will be a post with the offer-hash.
Here is an example of a previous post up for a vote:
https://t.me/tonstatus/4
T
13:10
TW/ VistaLabs
In reply to this message
many thanks!!
DS
13:59
Daniil Sedov
how to send jettons with TonWeb? or is there any other way to do it programmatically?
VP
14:05
Vladimir Plotvinov
In reply to this message
You can check https://github.com/toncenter/tonweb/blob/master/src/test-jetton.js, I hope it will be helpful for you
DS
14:06
Daniil Sedov
I just checked it and tried to do the same thing, but getting some js errors saying that it can't parse output from provider or something
VP
14:10
Vladimir Plotvinov
In reply to this message
Are you sure with JETTON_WALLET_ADDRESS is correct for your case? It's should be jetton-wallet-address (another contract) not classic wallet (v3/v4) address

Better to see logs/output/code. If you want, can chat me in direct with logs
DS
14:11
Daniil Sedov
In reply to this message
Oh, that was the problem! Thanks, I forgot that they're different contracts
AT
15:36
Anthony Tsivarev
In reply to this message
FYI, you can post a vacancy at jobs.ton.org
t
15:50
talkol
In reply to this message
1.5 years experience with FunC :)
15:51
I know I’m kidding :) it’s funny we’re all working in an environment where there’s almost no accumulated experience
i
16:00
isoscele 💎
In reply to this message
time traveler 😁
DS
17:16
Daniil Sedov
what am I doing wrong in jetton transfering?
17:18
toAddress must be my jetton wallet address and payload.toAddress must be jetton wallet address to which I'm sending jettons, right?
L
19:45
Lisa
Hi, contestants! Long time no see 😉

We are here to announce the next TON Smart Challenge with a total prize fund over 16,000 TON. The contest begins on August 4, 12:00 UTC and will last until 11 of August, 18:00 UTC.

TON Smart Challenge #2 is focused on giving opportunities to developers only starting their path of mastering FunC and smart contract development and will comprise five simple tasks, which will be automatically scored on submission. You can prepare for the contest by studying official docs and setting up a developer’s environment.

To participate and get more information go to the website.
K(
19:47
KillTeamSeller (ᵇᵉᵗᵗᵉʳ ᵗʰᵃⁿ ᵘ)
In reply to this message
oh
K
20:13
Kevin
After send transaction not return hash?
OB
21:11
Oleg Baranov
In reply to this message
When transaction confirmed (in block) you can calculate its hash, it will be hash of its cell
K
23:31
Kevin
In reply to this message
So cannot get hash before confirmed?
SH
2 August 2022
W
11:17
WTP
Hello guys. I'm a beginner and I want to start programming smart contracts on TON Blockchain.
Where should I start?
Y
11:17
Yashar
In reply to this message
Seems like this is where to start:
https://ton.org/docs/#/func/overview
W
11:18
WTP
In reply to this message
Is there any tutorial on YouTube?
Y
11:19
Yashar
In reply to this message
I think there was someone who posted here that was creating tutorials for TON. Search the chat for tutorial you should be able to find it
Y
11:20
Yashar
IR
Ivan Romanovich 12.07.2022 16:42:24
Hi all!

I do FunC lessons in Russian and recently started translating them into English. 2 lessons have already been translated.

For those who are interested here is the link: https://github.com/romanovichim/TonFunClessons_Eng
Y
11:20
Yashar
In reply to this message
@PyShayan here it is
W
11:20
WTP
Thanks
KW
14:38
Konstantin W
Is it possible to delete NTF?
AT
14:41
Andrey Tvorozhkov
In reply to this message
Depends on smart contract code.
14:42
In default realization - no. In custom realization - sure
D
14:49
Dario
In reply to this message
maybe its better if you also write salary per month
14:52
looks like its a serious proposal, good luck with the hr process
F
14:52
FriskYura
In reply to this message
This is Elon Musk
s
15:41
shahar
Where can I find wallet v3r1 and v3r2 func code?
16:18
In reply to this message
But it's actually in fift.
s
16:19
shahar
there is a wallet3-code.fc there, but I’m not able to compile it to the same output as the fift file in the repo
t
16:23
talkol
In reply to this message
Take a look at the posts here as well: https://society.ton.org

There are several styles to work in Ton, you need to find a tutorial to fit your style
DS
21:00
Daniil Sedov
what can cause that error when trying to deploy smart contract?

I have just installed the toncli and trying to deploy simple wallet contract.

Doing this:
toncli start wallet
cd wallet
toncli deploy -n testnet
the same way it was in docs.
but still getting an error.
In the first launch attempt toncli asked me to send some testnet TON to some address, I did that.
21:04
I also getting a strange error when trying to run tests (or run func/code.fc)
DS
21:23
Daniil Sedov
In reply to this message
tried running it on Linux machine and it works now. lol
3 August 2022
BT
08:29
Biduero Tim
Hi everyone, is there any way to get random value in Func?
SH
08:53
Seitaro Higuchi
In reply to this message
https://ton.org/docs/#/func/stdlib?id=random-number-generator-primitives
Note, that validators may affect this random number.
BT
09:00
Biduero Tim
In reply to this message
Thanks for helping)
DS
09:44
Daniil Sedov
Trying to create a simple wallet smart contract by myself to learn FunC, but my transactions keep failing with exit code 34... What am I doing wrong?
I'm fixing it for like a hour already but no success
09:44
SH
09:50
Seitaro Higuchi
In reply to this message
I guess dest_addr is malformed
DS
09:51
Daniil Sedov
In reply to this message
1) that's how I'm loading it in smart contract
2) that's how am I passing it to external message
09:51
In reply to this message
09:52
getting dest_addr from cmd
09:53
() recv_external (slice in_msg) impure {
var valid_until = in_msg~load_uint(32);

throw_if(35, valid_until <= now());

var dest_addr = in_msg~load_bits(256);

var msg = begin_cell()
.store_uint(0x18, 6)
.store_slice(dest_addr)
.store_coins(1)
.store_uint(0, 1 + 4 + 4 + 64 + 32 + 1 + 1)
.end_cell();

accept_message();

send_raw_message(msg, 3);
}

I think that's better than screenshots
i
09:53
isoscele 💎
In reply to this message
Store coins is in nano ton?
SH
09:56
Seitaro Higuchi
In reply to this message
Yeah, both snippets are not correct :
1) you should read address from slice via load_msg_addr
2) store address to builder via Addr, not addr, (fift is a little crazy, yeah)
DS
10:02
Daniil Sedov
In reply to this message
Thanks! It works now.

What's the difference between addr, and Addr, by the way?
SH
10:06
Seitaro Higuchi
In reply to this message
addr, is alias for 256 u,: write 256uint. Meanwhile full address serialization also include address format tag, workchain, 256bit part ans some additional fields. Addr, consume from stack two elements: workchain and hash-part and handle this
DS
10:07
Daniil Sedov
In reply to this message
so why it's always addr, in docs?
AF
10:25
Amir F
Hi... I wanted to write smart contracts on TON... and TON has FunC for it"s smart contracts... Is there any way to write contracts with solidity on TON?
Y
10:52
Yashar
In reply to this message
No! FunC and how TON works is fundamentally different from Solidity or other conventional virtual machines. You have to learn it directly. And bear in mind the assumptions we have in Solidity do not apply in FunC.
AF
10:56
Amir F
In reply to this message
Thanks... And what are the best sources for funC?
AT
11:06
Anthony Tsivarev
In reply to this message
o
11:10
oxlti.qube
In reply to this message
It could apply, if you make solidity messages asynchronous
AF
11:11
Amir F
In reply to this message
And where can I learn this method?
o
11:13
oxlti.qube
In reply to this message
You can try Free TON compilators for TVM and see the difference between Asynchronous Solidity and Synchronous one
Y
11:19
Yashar
In reply to this message
To my understanding, in TVM you can not make a function call to another contract and wait for its response. If your contract requires communication with other contracts, it means they have to support a form of callback and in your contract you have to consider that by the time the response arrives, some environment variables might have changed. So the code you write will look completely different. Am I wrong? I have not written FunC I have only read about it and had a conversation about it with @talkol .
AT
11:25
Andrey Tvorozhkov
In reply to this message
Yep. All right
Y
11:26
Yashar
In reply to this message
Amir there is this tutorial which I think is your best bet for learning FunC
Y
12:09
Yashar
In reply to this message
Cite this Amir and @enotdev
o
12:10
oxlti.qube
@talkol where did you learn FunC?
Y
12:11
Yashar
In reply to this message
He is more like the guy who has created it I think 😁
AF
12:22
Amir F
In reply to this message
Thanks
DS
12:55
Daniil Sedov
what are compute_gas_fees and other_fee ?
They consume much more coins than gas fee. Is there a way to lower them?
t
14:20
talkol
In reply to this message
White papers, ton.org/docs and experimentation with my team
14:20
Over time the community will improve the documentation but for now a lot of it is reverse engineering
14:21
Everything is open source, if you invest enough time to read the code, nothing is hidden 😅
SF
14:21
Slava Fomin
Almost nothing )
t
14:21
talkol
In reply to this message
Haha I wish, I have the people who help me when I don’t know something :)
SH
16:28
Seitaro Higuchi
T
TON Society 02.08.2022 22:12:03
👋 Here's a shout-out to all developers and creators!

We want more talented people to join us and discover all the great opportunities that the TON blockchain can bring.

🙌 You can help by sharing your interests and credible sources of information. This will be your contribution to the research of the community and will enable us to enhance it together.

✅ Fill in the below form with 5 simple questions and share the link with other community members

https://ton-org.typeform.com/devmedia

👉 Let us get to know you better - your personal opinion is greatly appreciated!
OB
16:28
Oleg Baranov
In reply to this message
I have free service that will notify you through the webhook when some transaction comes to your wallet @TonUtilsBot
ab
17:33
asd brain
```
addr_std$10 anycast:(## 1) {anycast = 0}
```
can anyone explain what is ## in this code please
OB
17:36
Oleg Baranov
In reply to this message
## is uint with bits num, uint 1 bit size
ab
17:37
asd brain
In reply to this message
just uint with 1 bit size?
OB
17:37
Oleg Baranov
yes
ab
17:37
asd brain
uint is one # right?
OB
17:37
Oleg Baranov
# = 32 bit uint
ab
17:37
asd brain
in the code above there 2 #
OB
17:38
Oleg Baranov
## N = N bit uint
ab
17:38
asd brain
# - bit operation ?
17:38
didnt get...
17:40
#&1 like that?
17:40
what is bit i didnt get
OB
17:40
Oleg Baranov
## 8 = uint8
## 64 = uint64
# = uint32
## 32 = uint32
ab
17:41
asd brain
In reply to this message
Thanks!!
17:41
clearly
17:56
b : #<=31
what type of b will be in human words ?
OB
17:59
Oleg Baranov
uint with size that fits 31, so it will be log2 31+1 = 5
17:59
## 5
AP
18:01
Andrey Pfau
In reply to this message
Not 8 bit uint?
18:02
Oh I see, my mistake
В
20:36
Василий
Hello everyone!
Anyone knows why during toncli run_tests procedure already defined might come up even having only 2 procedures in test file.? Pretty confusing
В
20:57
Василий
`[ 1][t 0][2022-08-03 17:54:16.452700431][Fift.cpp:67] top: abort
level 1: swap { <continuation 0x5592f7b91d00> } if HERE drop
level 2: [in @PROC:<{:] over @fail-ifdef HERE 2 { <continuation 0x5592f7c09180> } does null swap @doafter<{ 0 32 u,
level 3: <text interpreter continuation>
level 4: <continuation 0x5592f7bae2d0>
level 5: <text interpreter continuation>
[ 1][t 0][2022-08-03 17:54:16.452739603][fift-main.cpp:204] Error interpreting file `/tmp/tmpohjkaaen.fif`: contract_tests.fif:84: PROC:<{:procedure already defined
`
That's
very bizarre. I've looked at the contract_test.fif and at :84 it's just a definition of test_example function and no double defs in fif output
21:01
Most odd part is that if there was actual redefinition it would fail at build stage but here it blames already defined procedure during the runtime
21:09
I've found interesting detail: It assembles into `3 BLKDROP
SWAP
NEQINT`
Where in the rest of the tests function with same prototype assembles into s1 s3 XCHG prior to that prelude
В
21:28
Василий
Is there a way to make func trow error on warnings? So that would never happen to me again
21:39
I've found the culprit!
What's wrong with this kind of proc definition?
cell build_new_addr( int addr ){
cell new_addr = begin_cell()
.store_uint(1, 2)
.store_uint(5, 9)
.store_uint(addr, 5)
.end_cell();
return new_addr;
}

As soon as i comment it out even if it's never called it triggers procedure already defined
21:42
As if file being interpreted multiple times
D
21:53
Dario
In reply to this message
I highly suggest to avoid toncli and use this template contract https://github.com/ton-defi-org/tonstarter-contracts
t
22:22
talkol
There’s also an effort to make this approach (Typescript and no Fift) into a tool similar to hardhat. You can read about it in the ton-footsteps repo
D
22:27
Dario
In reply to this message
In my free time, im working on something that can be included in this tool. Is there anyone who is already working on it?
4 August 2022
Y
01:04
Yakitori
In reply to this message
36k$ per year?
01:04
lol
01:05
In reply to this message
100k$ is kind of the minimum for a senior solidity dev
M
01:05
MaybeMe
In reply to this message
Wht is it?
Y
01:05
Yakitori
+ if he has xp with TON he can ask much more
В
01:05
Василий
In reply to this message
36K is going to cut for “Not so smart contract developer”
NN
01:05
Nick Nekilov
In reply to this message
37
M
01:06
MaybeMe
In reply to this message
Wht do u mean?
JF
01:06
John Fyodor
In reply to this message
3k$ monthly is js junior+ salary
NN
01:06
Nick Nekilov
In reply to this message
Y
01:06
Yakitori
In reply to this message
FunC is very niche, kind of hard. Right now a dev with 1.5 years of XP in Defi, that know about solidity could easily ask 140k$
01:06
In reply to this message
lol
JF
01:06
John Fyodor
In reply to this message
+ literally priceless bonus token
Y
01:07
Yakitori
In reply to this message
Released over 4 years
D
01:07
Dario
In reply to this message
i wish this was true
01:08
but yes, 80k-100k is pretty good
M
01:08
MaybeMe
In reply to this message
Umm excuse me
Can u explain more about it?
Y
01:09
Yakitori
In reply to this message
There are lots of jobs out there, also if you're skilled + experimented you can easily start your own project + raise capital
01:10
In reply to this message
Intelligent and skilled people in crypto = expensive
D
01:10
Dario
its not that simple
Y
01:11
Yakitori
In reply to this message
01:11
Enjoy
01:12
In reply to this message
All of the ones I know who work in crypto for a comp make about this
01:12
In reply to this message
gl finding a skilled sc dev for the price of a junior js
01:13
In reply to this message
lol I have clients paying me 1k$ per day so no
M
01:13
MaybeMe
In reply to this message
Oo really?
Y
01:15
Yakitori
In reply to this message
Cute
01:15
In reply to this message
It's crypto man
01:15
And senior google devs get more
D
01:15
Dario
In reply to this message
depends ahahah
I
01:16
Ivan
In reply to this message
are you freelancer?
D
01:16
Dario
do not generalize
01:16
In reply to this message
Yes, I'm building a protocol as well
D
01:17
Dario
In reply to this message
the range is $85,000 - $500,000, depends on a lot of stuff
Y
01:17
Yakitori
In reply to this message
All salary is gross, not net as it depends on where you live
D
01:17
Dario
but i agree with the fact that a smc dev should earn at least 80k+
NN
01:19
Nick Nekilov
In reply to this message
Good Smart-Contract Developer but not that one who knows just how to use Solidity / FunC.
D
01:20
Dario
In reply to this message
no-one gives free money
В
01:20
Василий
In reply to this message
Come on bro! How do you even get 1.5 years of actual development experience? Eco system is like what? 3yrs? On that scale 1.5 years of day to day development is a veteran 😀
Y
01:22
Yakitori
In reply to this message
Those prices are gathered from actual offers
01:22
In reply to this message
In crypto yeah
В
01:26
Василий
In reply to this message
Ton is public for not that long so you got to be hired from the early days to qualify for your terms. How many companies were actually hiring FunC devs Couple years ago? Probably not many.
CM
03:49
Chathusha Mendis
Do I need to pay annual fees for TON domain? My main purpose to get a TON Dns is to host my site. So do I need to pay annual rent or something like other domain registration services?
Y
04:01
Yakitori
In reply to this message
I think it's a nanoton per year
04:01
Beware though that it won't work with the www
04:01
You need to use tonweb
CM
06:14
Chathusha Mendis
In reply to this message
Ohh. I got that. I thought it work fine with http. Thanks for the info dude
TO
09:00
Tim O'Brien
Guys
09:01
This is an IDE that can build a DApp along with a smart contract
09:02
My company build this on Algorand which also is based on a Stack Machine
09:02
Can you think of uses for this IDE on Tron
09:03
I want to know your honest opinion
09:03
The IDE would be free to the community
Y
11:12
Yashar
In reply to this message
Please note that this is TON not Tron.
TO
12:14
Tim O'Brien
In reply to this message
🥸😛
12:17
same question for TON
I
16:06
Ivan
Hello everyone, I wish to participate in the current TON contest and I am trying to install FunC. I am absolutely new in this field. I'm following this manual https://github.com/disintar/toncli/blob/master/INSTALLATION.md but at step 10, I keep getting error Command '['path_to_func.exe', '-V']' returned non-zero exit status 3222601730' (I am running console as admin). I found this command in the Toncli python script, it just tries to run func.exe. So it sees func.exe but cannot run it. When I try to run func.exe manually, it gives error "couldn't start the program correctly", so apparently it's some system problem. My laptop has Windows 11. Somebody knows how to fix this?
PS
18:19
Pablo Samius
Good afternoon. Who understands TON smart contracts, please advise on the estimate and timing. 5 minutes help needed. Does anyone have experience in development. I need to know the order of numbers (1000/10 000) and the time +/- month

1.Token on TON block-chain
2.Android app. tokenomik integration, mining tokens from smart contract for specific interractions.
3.NFT smart contract + integration with android app to interract.
18:23
No one can know exactly spend, but i need nubers to build budget. Help please
t
20:47
talkol
In reply to this message
Please follow the instructions in https://github.com/ton-defi-org/tonstarter-contracts

They will work on Windows too and are super clear :)
i
21:01
isoscele 💎
is it possible to dump values or something during developing using toncli?
5 August 2022
t
00:47
talkol
In reply to this message
I never used it in toncli, but there are debug instructions in func:
~dump msg_value;
i
00:47
isoscele 💎
In reply to this message
yeh i ended up doing dump_stack(). Thx anyway
PS
07:13
Pablo Samius
Good afternoon. Who understands TON smart contracts, please advise on the estimate and timing. 5 minutes help needed. Does anyone have experience in development. I need to know the order of numbers (1000/10 000) and the time +/- month

1.Token on TON block-chain
2.Android app. tokenomik integration, mining tokens from smart contract for specific interractions.
3.NFT smart contract + integration with android app to interract.
DS
07:16
Daniil Sedov
In reply to this message
I don't understand your question for the 2 days already
PS
07:52
Pablo Samius
In reply to this message
As i say you in russian chat. I build money budget for our project and need share of experience:

How much development cost and how much time different stages take. Not exactly but in accuracy of +/-1000$
SF
10:05
Slava Fomin
It's around $100500 and 133.7 hours on average.
PS
10:07
Pablo Samius
In reply to this message
Am i join TrollDev.chan? Sorry
AT
10:08
Andrey Tvorozhkov
In reply to this message
I'm afraid there is no answer to the question. The number of developers is limited, and the demand is very high. I recommend finding specific people in hackathons and talk to them personally
M
10:12
Mark
In reply to this message
You question is so vague
How can you expect any specific answer?
PS
10:21
Pablo Samius
In reply to this message
I expect answer like:

I or my team can
Simple create token for 500/1500$ in like 1/2month
build smart contract on TON for 5000/15000$ in like 2/10month
Integrate token in android app for 10000/20000$ in like 3/5month
NFT for 5000/7000$ in like 2/3month
M
10:32
Mark
Honestly Pablo
To create a Jetton on TON is a childish task
"Build smart contract" is very vauge statement of work, the answer is like from 0 to ∞
You can expect the specific answer only if you provide the specific technical requirements. Apart from this the answer is from 0 to ∞.
Do you need a proof of concept or a product ready? Nobody knows what is the product you going to build about. The cost in terms of money and time varies in degree(!) depends on details.
10:37
And to estimate is not just a 5 minute time help. Seriously? Are you going to put you project at risk relying on the answers of some strangers in some chat?
PS
10:38
Pablo Samius
In reply to this message
I just try to analyze costs of different tasks on development market
M
10:42
Mark
I'm nobody to advise you, but don't rely on some strangers. They don't care. You can get reliable analysis only from somebody concerned in the future of your project (probably yourself).
t
10:43
talkol
In reply to this message
The requirements are very vague. How are tokens in (2) mined? Current Jetton implementation does have a minter role but it’s centralized so would normally be revoked. Are you planning to keep a centralized backend that mines tokens for whoever asks and the Android app asks it to mine? I assume you don’t put the minting credentials in the Android app itself since it runs client side
PS
10:45
Pablo Samius
In reply to this message
Your are the one who work with such cases in the past. You have some experiance instead of me
M
10:48
Mark
Really?
You don't know anything about me😀 and my experience. I can say any bullshit, that sounds confident. So you would be satisfied?
PS
11:14
Pablo Samius
In reply to this message
Yes, becouse i collect a lot of of opinions and then make my own research. If you say bullshit i will see it in compare to all
DE
11:15
Dandan E
is there any documentation on how the TON Contests Bot works
11:16
i verified but it doesn't say how to proceed from there
SH
11:21
Seitaro Higuchi
In reply to this message
First you do verification via creation empty github repo and submitting your github username to bot, then you just send zip archive with solution to bot.
M
11:23
Mark
In reply to this message
Not exactly on your topic, but I'm currently reading The Blask Swan by Nassim Taleb. He tells about the world abusing Normal Distribution and averaging. So what is the point of comparing? It seems like your are looking for a proof of the opition, but not truth. Becuase this one comment that seems apart from the others may be correct, but you woud throw it away.
Anyway, good luck Pablo!
PS
11:25
Pablo Samius
In reply to this message
Im looking for sufficient information, not about truth.

Truth is something which only God can know :)
DE
11:34
Dandan E
In reply to this message
what are the files you need to include in the archive, and what is "Can not read participant.json" after uploading the archive?
DE
11:39
Dandan E
okay thanks!
RR
12:52
Reiss Ren
Hello! I'm here to ask for help about FunC. I want to have a persistent tuple in the old run_test of toncli (accessible in different functions), but it seemed 'global' doesn't work, what's the right way to accomplish it
d
14:02
dio
hello! any tips how to install/configure the environment on apple M1
14:02
seems i'm stuck
AZ
14:09
A Z
In reply to this message
Same
d
14:11
dio
CMake Error at /opt/homebrew/Cellar/cmake/3.23.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.23.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/opt/homebrew/Cellar/cmake/3.23.3/share/cmake/Modules/FindOpenSSL.cmake:578 (find_package_handle_standard_args)
terminal/CMakeLists.txt:4 (find_package)
14:11
have no idea hot to set this var
AT
14:42
Andrey Tvorozhkov
In reply to this message
You need to install libcrypto
RG
14:44
Ruslan Gabdullin
In reply to this message
brew install openssl should help you
SF
14:44
Slava Fomin
In reply to this message
The correct way to approach this problem would be to hire a TON expert/team and then work with them to evaluate your project.
PS
14:57
Pablo Samius
In reply to this message
Thx, thats good idea, but on current stage we build budget to show angel investors.

They want to see aproximatley spenings
14:57
As fast as we have money we for sure hire developer
14:58
And evaluate exact
SF
15:11
Slava Fomin
I doubt any experienced investor will consider your project seriously if you don't have a technology expert on board prior the investment. It's a recipe for disaster to hire developers after the project is evaluated and without an expert developer to manage them in the first place.
i
15:18
isoscele 💎
where i ask clarifications about the description of an exercise of the smart challenge?
PS
15:19
Pablo Samius
In reply to this message
Our project not about just token, we have strong science base by the way smart contract and token, just 30% of idea.

We for sure have technology expert but not about blockchain
15:21
In reply to this message
angel investment doesent mean that "project allready evaluated" but aproximatley spendings is essenital.
d
15:39
dio
In reply to this message
i already have it installed🙁
AR
17:27
Andy Russo
How can I print out something in func?
DS
17:28
Daniil Sedov
In reply to this message
var e = 123;
e~dump();
17:28
In reply to this message
in the bot
i
17:29
isoscele 💎
In reply to this message
what is bot username?
DS
17:29
Daniil Sedov
In reply to this message
https://t.me/toncontests_bot it's the same bot through which you should upload your solutions
i
17:29
isoscele 💎
Thx
AZ
17:31
A Z
Referenced from: /usr/local/bin/fift
Reason: no suitable image found. Did find:
/opt/homebrew/opt/openssl@3/lib/libcrypto.3.dylib: mach-o, but wrong architecture
17:32
thats what im getting whenewer trying to run fift -V on mac m1
17:32
if ayone could help with this
SH
17:40
Seitaro Higuchi
In reply to this message
It is not suitable place for questions regarding contest description. https://t.me/toncontests_chat is
AR
17:47
Andy Russo
How can I test my contracts locally?
DS
17:48
Daniil Sedov
In reply to this message
toncli run_tests
M
19:36
Mark
what if I get 500 exploring my contract in testnet explorer
what am i missing out?
upd. oh I see, 500 instead of 404
D
20:29
DistantYesterday
Hi! Does anyone know what the following error message of fift means? I think I have configured fiftlib correctly

[fift-main.cpp:204] Error interpreting file counter.fif: counter.fif:8: PROCINLINE:<{:-?
20:42
In reply to this message
Though I am seeing similar error messages to this error, I have indeed fed -SPA parameters to func.
20:59
Nvm switching to pre-compiled func at https://github.com/ton-defi-org/ton-binaries solved my problem… That’s really weird
A
22:45
Alireza
dear admins, in the 1st task, what the code should do if the numbers are not in the range [1 - 1048576) ? shall it throw an exception, or return a negative value such as -1?
IM
22:50
Illia Malovanyi
In reply to this message
Your input is 1 <= a, b <= 1048576, so there aren't any tests in which a or b is out of range specified by you
A
23:06
Alireza
In reply to this message
very good 👍

thanks, just as a point: as you said, 1048576 is considered in the range, while in the spec says: ... for two integers greater or equal to 1 and less than 1048576.
A
23:26
Alireza
a couple of more questions:

1- should participants deploy the code (either on mainnet or testnet)?
2- in the participant.json file, which wallet is supposed to be provided? the wallet of deployed smart contract? or the personal wallet?
SH
23:29
Seitaro Higuchi
In reply to this message
This questions should be asked in https://t.me/toncontests_chat
6 August 2022
SK
04:14
Shawn Kovac
In reply to this message
a smart contract can be simple or complex. there's no single answer without details of such a smart contract. that's like saying, 'i can build an app and backend for $5000. but you have no idea what that app or backend will entail. 🤦‍♂
04:16
In reply to this message
that's bullshit. 🤦‍♂ Just sayin'. 😁
AR
07:44
Andy Russo
How do I run a func script?
I tried this:
() main() {
int e = 100;
e~dump();
}

then "toncli func 1.fc", "toncli fift 1.fif" but nothing shows up in the console.
PS
09:41
Pablo Samius
In reply to this message
Building start-up means always work with lack of information. I think that's all bullshit too, but this way is only way.

If all startup think like you - there in world will being 0 startups.

You just choose your work where all is clear and can be googled on github, and me choose different. Be patient to another people chiose please. And if you can help dont FUD.

Just because FUD = wasting time.
AD
11:41
Aler Denisov
Hello there. I'm playing around toncli and smart-contracts development, but stuck on toncli deploy command. I'm using macbook with M1 chip, so I build fift from sources, but looks like toncli tries to pass invalid option to binary
AT
11:43
Andrey Tvorozhkov
In reply to this message
Is it latest version of toncli from git? Or pypi?
AD
11:43
Aler Denisov
In reply to this message
pip
AT
11:45
Andrey Tvorozhkov
Try install from git, pip install git+https://github.com/disintar/toncli.git

I'm not sure that this will help because error seems very strange. But it's good first step :)
AD
11:49
Aler Denisov
now it doesn't work at all :D
AT
11:50
Andrey Tvorozhkov
You're using it from folder
11:51
U need to go different folder. This is because python use dynamic imports
11:51
I'm 100% sure that version from git is stable, pypi ~99%
o
11:54
oxlti.qube
Is there any price oracles on TON?
AD
11:59
Aler Denisov
In reply to this message
Can I send DM to you? Or is it okay to continue in chat?
AR
13:52
Andy Russo
I can't make toncli tests work. When I run "toncli run_tests", first it prints error: ( function invoke_method undefined ). Then it says build successful. Then there is several lines of weird logs, ending with error: Error interpreting file C:\Users\andyr\AppData\Local\Temp\tmpkuarq9x3.fif: contract_tests.fif:27: }END>c:main procedure not defined

Then I looked into the "contract_tests.fif", and I found out that:
1. "AsmTests.fif" is not included in it.
2. "__test_gcd" (my test function) body (inside the {}) is empty.

I installed toncli following the instructions. Can anyone help me make tests work, please?
A
14:38
Alireza
In reply to this message
just as a guess, check thee method_id of all test functions, they must be unique.

also check the following post on Ton Contest Chat (https://t.me/toncontests_chat) 👇
A
14:38
Alireza
IM
Illia Malovanyi 05.08.2022 18:25:52
Almost yes. Check this one. (this is one of my tests for the first task, I hope I will not be banned from the contest for this 😅)

Here is a small difference between testing getters or get-functions (like in this contest) and recv_internal or recv_external


Please, note that you need to specify unique function_selector

By default, for recv_internal it is 0 (and recv_external is -1). But for getters it is unique.

To get the function selector for your getter, you should run toncli build and then open ./build/contract.fif file and find there something like this 93344 DECLMETHOD gcd

93344
will be what are you looking for
SK
14:46
Shawn Kovac
In reply to this message
i don't understand you.
AR
15:36
Andy Russo
In reply to this message
I didn't have method_id(0) I already use function selector to reference the function. Now there is a new error, which indicates that there is no code of the function. Error: Error interpreting file C:\Users\andyr\AppData\Local\Temp\tmpdft_qdou.fif: contract_tests.fif:27: }END>c:invoke_method: procedure declared but left undefined

Here's the code of the test file:
() __test_gcd() method_id(0) {
var (int gas_used, tuple results) = invoke_method(93344, [10, 15]);
}
AD
15:40
Aler Denisov
Guys, sorry for dumb questions.. but how to debug unexpected test failures?) Did func have something such as printf? My test failed on first check: throw_if(100, exit_code != 0); but how I can receive exit_code to figure out what happend?
i
15:45
isoscele 💎
In reply to this message
nothing more than "dump_stack()"
AD
15:47
Aler Denisov
In reply to this message
I got #DEBUG#: stack(2 values) : 7 C{3AA53057A70DD9BA69D96D763CD5DE8EF2F65B88A879B04A02949D54AA4D75B9}
15:48
looks like no matter what I throw (added throw(10); in begin of method) but it still 7...
15:48
oh.. i see. Thank you for help)
DS
16:26
Daniil Sedov
In reply to this message
there is dump() also
16:26
In reply to this message
^
AR
16:49
Andy Russo
In reply to this message
I added some code to see what will happen in the generated fift code:
int __test_gcd() method_id(0) {
int e = 100;
e~dump();
var (int gas_used, tuple results) = invoke_method(93344, [10, 15]);
return e;
}

In the fift code:
__test_gcd PROC:<{
//
100 PUSHINT // e=100
s0 DUMP // e
}>

The error: contract_tests.fif:29: }END>c:invoke_method: procedure declared but left undefined

So, I think that toncli somehow doesn't include the method. And I think this is somehow related to the fact that AsmTests.fif is not included in that file. Any ideas on how to fix this?
SH
16:51
Seitaro Higuchi
In reply to this message
Try return (e, gas_used): looks like invoke_method is optimised out because result is not used
AT
16:53
Andrey Tvorozhkov
In reply to this message
I saw that func has special flag for warnings, think it's needed to pass output of func to toncli run. Guess it will help a lot for devs
AR
16:54
Andy Russo
In reply to this message
Same error, fift code changed though.

__test_gcd PROC:<{
//
100 PUSHINT // e=100
s0 DUMP // e
93344 PUSHINT // e _6=93344
10 PUSHINT // e _6=93344 _8=10
15 PUSHINT // e _6=93344 _8=10 _9=15
PAIR // e _6=93344 _7
invoke_method CALLDICT // e _11 _12
DROP // e gas_used
}>
S
17:49
Shayan
I'm trying to run func and fift on my Ubuntu 20.04 machine. I downloaded the binaries for Ubuntu 18.04 and they don't run. They exit with no output, and exit code 132.
I tried to build from sources, but it gives me Error 2.
17:50
cmake .. -DCMAKE_BUILD_TYPE=Release && make -j 4
17:50
cmake .. -DCMAKE_BUILD_TYPE=Release && make V=1 VERBOSE=1 -j 4
17:50
What am I doing wrong?
M
17:58
Mr. B
In reply to this message
Everything 😹
RG
18:02
Ruslan Gabdullin
In reply to this message
Hello, from your logs it’s unclear. Here is a working script of building: https://github.com/kdimentionaltree/ton-builder/blob/main/amd64.Dockerfile
Please, check that all libraries are installed and that you use correct compiler.
P.S. In last command please remove —target argument.
18:03
And do not forget ENV commands:
export CC=clang && export CXX=clang++
i
20:21
isoscele 💎
Where can i read about Any, Maybe etc?
AH
21:30
Amir Habibzadeh
Hi, I'm solidity developer and I wanna participate in the FunC contest, Can I write in solidity and convert it to FuncC?
If yes, is there any package for it that you know?
DS
21:31
Daniil Sedov
In reply to this message
Learn func
AH
21:33
Amir Habibzadeh
In reply to this message
Horrible syntax 🫤
DS
21:36
Daniil Sedov
In reply to this message
It's fun(c) :)
Y
21:40
Yashar
In reply to this message
It is not possible Amir. They are also fundamentally different so not possible in any time in the future to have a convertor.
M
22:15
MaSTeR
hi
22:15
ADNL string private data?
M
22:17
MaSTeR
M
MaSTeR 06.08.2022 22:11:36
need help the open network
А
22:25
Андрей
In reply to this message
Yes and no. Any node in the TON network has its own ADNL address. It's like IP addresses on the Internet. It's more like personal information.
S
23:16
Shayan
In reply to this message
I checked everything I could. I ran the apt command from the linked docker file, I set the environment variables, and the build still fails the same way.
How can I get a more informative error message? I can't think of any other thing to try.
RG
23:31
Ruslan Gabdullin
First of all you can set -j=1
23:31
Another thing to try is to remove build folder for building from scratch
23:32
Last thing: you can redirect output of two last commands to file and send them here
7 August 2022
C
08:24
Cop
Hi. Is there any news about ton dns? How can I use *.ton as a domain?
S
08:46
Shayan
In reply to this message
Thanks a lot! This (probobably along with your other suggestions) worked.
DS
09:21
Daniil Sedov
In reply to this message
C
09:24
Cop
In reply to this message
thankyou
E
11:11
Emilia
Hello,
I am analysing the documentation on TON Nominator. On github I found that the minimum stake for a validator is > 1k TON while on this article telegraph it is > 10k TON. Which of the two should be followed?
А
11:24
Андрей
In reply to this message
image_2022-08-07_11-24-50.png
Not included, change data exporting settings to download.
17.2 KB
.
13:30
.
Hey buddy’s!

Please help me figure out the launch of the pool of nominators: which wallet should be replenished by the validator who organized the pool, and how to subsequently withdraw funds from it?
The mechanism for replenishment by nominators is clear, funds are sent to the created addresses with a comment.
A
20:09
Abel
Hi, can someone help me out....how can you access individual elements of a tuple in func using a while loop
D
20:48
DistantYesterday
In reply to this message
I am also facing this issue…
20:49
To be more specific, does anyone know why “uncons” is not working as the doc claims?
20:49
DS
21:06
Daniil Sedov
In reply to this message
"the doc claims" that uncons works with lists, not regular tuples. Please read more than one line describing a function
s
22:11
spongecodes
Hi, I am trying to get started with learning FunC. I am following this guide to write my first contract but not understanding how to test and deploy with typescript as I am beginner in TS as well.
https://society.ton.org/ton-hello-world-step-by-step-guide-for-writing-your-first-smart-contract-in-func
22:12
I am able to write contract and compile to counter.cell but not able to test and deploy after that
8 August 2022
Y
00:19
Yehor
Hey guys, challenge question. Who did the 3rd task, is it necessary to process hidden fields? For example {n:#}, {X:Type} ?
t
00:48
talkol
In reply to this message
what happens when you run "npm run test" ?