Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escape special characters +-&|!(){}[]^"~*?:\ - e.g. \+ \* \!
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Profile picture
Howard
Moderator
13 Questions, 113 Answers
  Active since 20 January 2023
  Last activity 14 days ago

Reputation

630 + 13 this December 0 17

Badges 6

Editor Freshman 3 × Eureka! Newbie Enthusiast Scholar
1 Votes
1 Answers
5K Views
1 Votes 1 Answers 5K Views
The following content appears in this whitepaper (https://docs.ton.org/tblkch.pdf): > For instance, each outbound message created in a transaction is assigne...
1 Votes
1 Answers
6K Views
1 Votes 1 Answers 6K Views
In Blueprint, we will need to write the Wrapper functions ourselves. More importantly, when we code the op code in our FunC code, we need to decode the strin...
3 months ago
0 Votes
0 Answers
6K Views
0 Votes 0 Answers 6K Views
For example, if you examine the code in detail here: https://github.com/ton-blockchain/payment-channels/blob/e605580c3fb1feb22d80be9a0cddfcd05671c347/func/as...
8 months ago
0 Votes
0 Answers
6K Views
0 Votes 0 Answers 6K Views
Since I am looking into the multisig project in detail, how can I use the command line in GitHub (https://github.com/akifoq/multisig) using the following com...
8 months ago
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
In whitepaper, 2.1.1. Account addresses. we got description in below: The source address and destination address are always present in any message. Normally,...
0 Votes
0 Answers
3K Views
0 Votes 0 Answers 3K Views
Case 1: () recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg_body) impure { slice cs = in_msg_full.begin_parse(); int flags = cs~lo...
7 months ago
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
In the Solidity programming language on the EVM, we need to be mindful of gas usage for each line of code. For now, the difference in gas cost in TON is stil...
0 Votes
1 Answers
5K Views
0 Votes 1 Answers 5K Views
What is the usage of the configuration here? Should I worried about it if I am testing my contract? https://github.com/ton-community/sandbox#networkblock-con...
10 months ago
0 Votes
1 Answers
5K Views
0 Votes 1 Answers 5K Views
As mentioned in this question: "3) Poll for the latest transactions from the Blockchain using your wallet account ID and match the transaction using the pre-...
2 months ago
0 Votes
0 Answers
5K Views
0 Votes 0 Answers 5K Views
According to the documentation, we find the commit() FunC code described as follows: Commits the current state of registers c4 (“persistent data”) and c5 (“a...
3 months ago
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
In the docs.ton.org, we find: > There is a necessity for the synchronization of message routing and transaction execution. In other words, nodes in the netwo...
3 months ago
0 Votes
0 Answers
6K Views
0 Votes 0 Answers 6K Views
Has anyone ever written test cases for Telemint (also known as the Telegram anonymous phone number)? GitHub Link to Telemint The code is quite complex. I hop...
3 months ago
0 Votes
2 Answers
11K Views
0 Votes 2 Answers 11K Views
Follow the docs there:https://ton.org/docs/develop/func/overview back by the code: () send_money(slice address, int amount) impure inline { var msg = begin_c...
10 months ago
5 Get result/status of transaction

In my personal experience, I would use code like this to track the result of a transaction:

=== Your Code Parameters === 
.....

console.log("============================");
console.log("Interacting with Collection Contract: \n" + contract_address);
let seqno: number = await wallet_address.getSeqno();
let transfer = await wallet_address.sendTransfer({
    seqno: seqno,
    secretKey: keyPair.secretKey,
    messages: [
        internal({
            value: toNano("...
9 months ago
3 What happens if we verify the source code in the explorer, but the contract's code gets updated using set_code() instruction?

When you verify a smart contract's source code on a blockchain explorer or website, the page generates a unique code hash for the contract. This code hash is essentially a digital fingerprint of the contract's bytecode. When someone views the verified source code on the explorer, the explorer looks up the code hash and retrieves the corresponding source code.

However, if the contract's bytecode is updated using the set_code() instruction, the code hash will change. **This means that the ...

9 months ago
2 How does the TON foundation generate income?

Good question. As a community contributor, I share this concern. The information I can provide is sourced from tonscan.org.

I w...

6 months ago
2 What is the byte size of a smart contract that can be deployed on TON?

The maximum size of a smart contract deployed on the TON Network depends on the complexity of the contract and the number of cells it utilizes. In general, the size of a smart contract's Bag-of-Cells (BoC) representation should not exceed the size limit of a single shardchain block, which is 2 MB. However, practical limits for smart contracts are much smaller.

A single cell in the TON Network can store up to 1023 data bits and has 4 references to other cells. The more complex the sma...

7 months ago
2 In transactions, what are "compute_gas_fees" and "other_fee"?

compute_gas_fees and other_fee are fees charged by the TON network for processing smart contract transactions.

compute_gas_fees are the fees charged for the computation required to execute the smart contract code. This includes the cost of processing instructions, reading and writing data to the blockchain, and validating transactions. The amount of compute_gas_fees charged depends on the complexity of the smart contract code and the amount of resources required to execute it.

`ot...

8 months ago
2 What is `recv_internal`, and what are those arguments for?

There are always 4 arguments on stack when recv_internal is called.

By declaring recv_internal with less than 4 arguments you force FunC to ignore most deep variables (they still will be there, but your code will be unaware for the whole TVM execution).


in_msg_full - cell with raw message cell that contains all the flags and additional fields

in_msg_body - slice that only contain body of the message

Please check https://ton.org/docs/learn/tvm-instruction...

9 months ago
2 Can you explain the purpose of the "recv_internal" function in FunC? And what is the connection between FunC and Fift?

For the short answer, yes. Smart contracts are written in FunC, then compiled into Fift, and deployed on the blockchain. They can later be interacted with using either Fift or a wrapper SDK.

On the other hand, there are always 4 arguments on stack when recv_internal is called.

By declaring recv_internal with less than 4 arguments you force FunC to ignore most deep variables (they still will be there, but your code will be unaware for the whole TVM execution).

here are the ...

9 months ago
2 Hello! I have observed an interesting behavior in wallet clients. I attempted to create a wallet using TonHub, TonKeeper, and wallet.ton.org. TonHub and TonKeeper generated the same address, while wallet.ton.org produced a different address when I used th

The reason for the different addresses generated by TonHub, TonKeeper, and wallet.ton.org when using the same mnemonic phrase is because the address depends on the wallet contract version being used.

It is important to note that v4 of the wallet contract allows for the installation of plugins, which could potentially introduce security vulnerabilities if used improperly. If you do not require the advanced features provided by v4, it is recommended that you use v3 ins...

8 months ago
2 Inquiry About Transfer of TG NFT Username and Error Code 206

That's a great question. If you check the repository URL for this NFT, which is the code in FunC, Telemint, you'll see a line of code that reads throw_unless(err::not_enough_funds, bid >= initial_min_bid);*1.

This line means that you need more funds in the NFT itself to trigger this kind of transaction in practice. In other words, "not enough funds" means that you should replenish the balance of the NFT smart contract so that there is more than 💎1.

*1: https://github.com/T...

7 months ago
2 How can I can register .ton domain name? Are dns auction contracts already public?

Yes, this is a great question!

TON DNS is a decentralized domain name system that lets you assign a human-readable name to crypto wallets, smart contracts, and websites.

Domain names are NFTs that can be stored, gifted, or sold. Auctions for domain names last for one week, and bids must be at least 5% higher than the previous bid. The highest bidder at the end of the auction period wins the domain name.

In addition, the .ton domain can be used as a multi-support gate to ...

9 months ago
2 Is there a "blackhole address" on TON for NFT burning?

Good question! Essentially, we are following the content from getgems.io, the largest NFT marketplace on TON. It suggests that we can use two specific addresses as dead addresses, similar to what we know from Ethereum:

1/ "EQD__________________________________________0vo"(https://dton.io/a/EQD__________________________________________0vo)

2/ "EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c"(https://dton.io/a/EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c)

By sending NFTs to ...

6 months ago
2 What is the `int_msg_info` even means here?

This is a great question! (Took me a long time to understand as well)

So basically, you are asking:

  • Why do we store the uint(....) there?
  • And why do we deal with int_msg_info over there?

1/ The message structure

To understand why we store the uint(...) in the message, you need to understand how TVM works for Message. In practice, the Message Layout shows that to "compress" the message we want to store, we must store it into a "Cell" and upload it to the smart contract a...

7 months ago
2 In TON, how can we handle large amounts of data in messages? What are some techniques for efficiently storing and transmitting big data through messages?

Before we start, you need to know the message itself is sending on Cell data type in TON. Which means, each cell has a limit of 1023 bits for storing data. This limit includes the data stored within the cell and any necessary headers or metadata.

Suppose you have a message body that is 900 bits long, and you want to store it in a cell along with its message header. The message header itself will also take up some bits for storing its fields, such as message type, address information,...

7 months ago
1 Can `run_ticktock` function work on a basechain?

The function run_ticktock only operates in the masterchain and it's exclusive to the smart contracts whose addresses are specified in the corresponding config parameter.

Therefore, such smart contracts cannot work on a basechain.

6 months ago
1 Does Fragment have API or libraries?

Hi, from my knowledge I don't think they have!

Cheers,
Howard

5 months ago
1 Is the smart contract of Fragment available to see?

Yes, you can find the related of code of NFTs in FunC here:

https://github.com/TelegramMessenger/telemint

5 months ago
1 Are there explorers in the TON ecosystem useful for exploring blocks?

Certainly, the EVM ecosystem is indeed known for its robust block explorers, and there are similar tools available in the TON ecosystem as well. These explorers provide detailed insights into blocks, transactions, and events happening on the TON network:

Explorer.toncoin.org - A comprehensive block explorer that provides detailed information about the FreeTON blockchain, including blocks, transactions, and account details.

DTON.io - This is another popular TON block explorer that provid...

5 months ago
1 Do gas fees for dict operations depend on the dict size?

Yes, gas consumption does increase with the size of the dictionary. This is due to how the dictionary is packed.

Specifically, it's packaged as a compressed prefix tree into a cell tree. When you perform a read operation, all the cells on the path to your value are read, with each cell reading costing 25/100 of the gas.

Thus, larger dictionaries, which have more cells to read, will consume more gas.

4 months ago
1 How do we validate given address is valid TON address or not?

Generally speaking, you can use https://testnet.toncenter.com/api/v2/#/accounts/get_address_information_getAddressInformation_get to acquire all formats of a single address.

However, in practice, you can also utilize libraries to generate these. Below are a few snippets of code:

import { mnemonicToPrivateKey } from "ton-crypto";

let mnemonics = "YOUR_MNEMONICS";
let keyPair = await mnemonicToPrivateKey([mnemonics]);

// ✨ 🟡 Test-net:
const client = new TonClient4(...
4 months ago
1 How to bring `op-code` to Hex?

Generally speaking, the FunC code op::increase = "op::increase"c first converts this into a uint (unsigned integer), since in TVM (Turing Virtual Machine), communication is done only in unsigned integers to distinguish the unlimited functions that you build.

On the other hand, the uint can be converted into hex code to save space when storing it in a Smart Contract.

**Here's an example in TypeScript to finalize the op-code into uint and hex data. It uses the CRC32 method to...

3 months ago
1 Is It Possible to Perform an In-Place Replacement of Bytes in a Cell Without Creating a New One?

Unfortunately, the answer is no.

Because the cells are immutable, and partially because you can cheaply calculate the cell hash.

3 months ago
1 How to store strings longer than 1023 bits in TON cells?

That is correct; you need to use Snake Data Encoding if you want to store more than 1023 bits in a Smart Contract (TVM).

You have no other option.

The short answer is to use the method that Arter provided by checking the snake encoding example code here:
Snake Encoding Example Code

Also, for a more comprehensive understanding of how to incorporate this process into your work, you can refer ...

3 months ago
1 `check_signature` & `check_data_signature` usage for Signing?

You can sign a Cell with ton-crypto or ton-core, and later verify it using check_signature or check_data_signature from stdlib.fc in FunC.

Here's an approximate code snippet that you should review:

sign(yourCell.hash(), keypair.secretKey);

## And in the FunC contract, check like this:
check_signature(cell_hash(your_cell), signature, public_key)

For more details, you can refer to the [TON documentation on signature checks](https://docs.ton.org/develop/fun...

3 months ago
1 What is the `Big-endian by default` means here?

Overall

In big endian byte order, the **most significant byte (MSB) is stored at the lowest memory address, and the least significant byte (LSB) is stored at the highest memory address.

This is also known as network byte order, because it is the format used in internet protocols like TCP/IP in general.

Big-Endian in TVM

In TVM, integers within cells are serialized using the big-endian format by default. This means that when an integer is converted into a sequence of bytes t...

3 months ago
1 Is logical time unique for each transaction?

First of all, LT (Logical Time) is unique for each smart contract in TON. This means that different addresses produce different hashes for transactions, and each will be tagged with a different Logical Time inside the block.

In an** asynchronous system **like TON, you can't get a response from the destination smart contract in the same transaction. A contract call may take a few blocks to be processed, depending on the length of the route between the source and destination.

The asynchro...

3 months ago
1 How is logical time generated?

Based on the Whitepaper found here, logical time is described as:

For this purpose, the creation of an outbound message is considered an atomic event, logically dependent on the previous message created by the same transaction, as well as on the previous transaction of the same account, on the inbound message processed by the same transaction, and on all events contained in the blocks referred to by hashes contained in the block with the same transactio...

3 months ago
1 Convert public key of validator to correct format

I don't have any experience dealing with Validator configuration, but I can share with you the idea for the Public Key we use in TON and how it interacts with smart contracts.

import { randomBytes } from "crypto";
import { keyPairFromSeed } from "ton-crypto";

    let keypair = keyPairFromSeed(randomBytes(32));
    let public_key_hex = keypair.publicKey.toString("hex");
    let public_key_int = BigInt("0x" + public_key_hex);
    let public_key_cell = beginCell().storeU...
3 months ago
1 Is there a tutorial anywhere on creating an NFT on TON?

Hi, so if you like, I highly recommend you using the NFT repo here that using Tact language for the NFT!

  • It's more easy to learn.
  • There is as simply as just pull the repo and run yarn to install library the deploy the contract.

https://github.com/howardpen9/nft-standard-template, enjoy!

6 months ago
1 Can we use QR code to log-in ?(like in Metamask)

Yes, you can use many SDK/open source project shared with related way to acheive that.

  • https://github.com/ton-foundation/ton-x
    This lib can give you a connect via qr code option support with tonhub mobile wallet

  • More recently, TON community just launched the TON Connect 2.0, you can connect more better UX and working with the real-time performance of it.

Nonetheless, you can find the example with github online p...

10 months ago
Show more results compactanswers
1 Votes
1 Answers
5K Views
1 Votes 1 Answers 5K Views
The following content appears in this whitepaper (https://docs.ton.org/tblkch.pdf): > For instance, each outbound message created in a transaction is assigne...
0 Votes
2 Answers
11K Views
0 Votes 2 Answers 11K Views
Follow the docs there:https://ton.org/docs/develop/func/overview back by the code: () send_money(slice address, int amount) impure inline { var msg = begin_c...
10 months ago
0 Votes
1 Answers
8K Views
0 Votes 1 Answers 8K Views
I've been 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?...
0 Votes
0 Answers
6K Views
0 Votes 0 Answers 6K Views
Has anyone ever written test cases for Telemint (also known as the Telegram anonymous phone number)? GitHub Link to Telemint The code is quite complex. I hop...
3 months ago
1 Votes
1 Answers
6K Views
1 Votes 1 Answers 6K Views
In Blueprint, we will need to write the Wrapper functions ourselves. More importantly, when we code the op code in our FunC code, we need to decode the strin...
3 months ago
0 Votes
1 Answers
5K Views
0 Votes 1 Answers 5K Views
As mentioned in this question: "3) Poll for the latest transactions from the Blockchain using your wallet account ID and match the transaction using the pre-...
2 months ago
0 Votes
0 Answers
5K Views
0 Votes 0 Answers 5K Views
According to the documentation, we find the commit() FunC code described as follows: Commits the current state of registers c4 (“persistent data”) and c5 (“a...
3 months ago
0 Votes
0 Answers
6K Views
0 Votes 0 Answers 6K Views
For example, if you examine the code in detail here: https://github.com/ton-blockchain/payment-channels/blob/e605580c3fb1feb22d80be9a0cddfcd05671c347/func/as...
8 months ago
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
In the docs.ton.org, we find: > There is a necessity for the synchronization of message routing and transaction execution. In other words, nodes in the netwo...
3 months ago
1 Votes
1 Answers
4K Views
1 Votes 1 Answers 4K Views
Hello everyone, please explain: ```` () send_message_back(addr, ans_tag, query_id, body, grams, mode) impure inline_ref { ;; int_msg_info$0 ihr_disabled:Bool...
1 Votes
1 Answers
6K Views
1 Votes 1 Answers 6K Views
In TVM's whitepaper, we got this in Chapter 3.2.8: > Integers in cells are big-endian by default. > Notice that the default order of bits in Integer s serial...
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
Hi there guys, how can I make an in place replacement of the bytes in a cell? For example, if I have a cell like, begin_cell().store_uint(val, 8).end_cell(),...
3 months ago
1 Votes
4 Answers
7K Views
1 Votes 4 Answers 7K Views
In 80%(!) of the cases the 24 secret words generated with the tpay1 wallet generate a different(!) address in newer wallets and dont(!) show wallets assets. ...
4 months ago
1 Votes
1 Answers
8K Views
1 Votes 1 Answers 8K Views
I'm new to TON. I know that each message in TON has its lt (Logical time) to track the order of events. But is logical time unique for each transaction or ca...
0 Votes
1 Answers
9K Views
0 Votes 1 Answers 9K Views
Hi everione I try to understand logic of work API v4. In general I have a aim to get full graph of messages for some smart-contract call. I use next algorith...
5 months ago
0 Votes
1 Answers
9K Views
0 Votes 1 Answers 9K Views
The fragment.com website shows some of usernames that can be bought but hides others saying "and 1.68K+ more". Is there a way to get the full list of those 1...
6 months ago
0 Votes
1 Answers
3K Views
0 Votes 1 Answers 3K Views
How can I connect MyLocalTon using TonWeb? > This question was imported from Telegram Chat: https://t.me/tondev_eng/1380
2 Votes
2 Answers
14K Views
2 Votes 2 Answers 14K Views
In TON blockchain, when implementing my dapp smart contract in FunC, my contract can accept both internal messages handled by recv_internal() and external me...
1 Votes
2 Answers
9K Views
1 Votes 2 Answers 9K Views
Is there anywhere that I can read about how many tokens were allocated to the TON foundation or similar entities in the initial release? Does the TON foundat...
4 Votes
3 Answers
15K Views
4 Votes 3 Answers 15K Views
If I want to hold and store a significant amount of toncoin, what options do I have and what would be the pros and cons of the various approaches from a secu...
0 Votes
1 Answers
1K Views
0 Votes 1 Answers 1K Views
In the Bitcoin standard there is concept called "derivation path" defined in BIP32: it is used by hierarchical deterministic wallets to derive keys. How do T...
1 Votes
1 Answers
11K Views
1 Votes 1 Answers 11K Views
TON uses logical time (also known as Lamport time) in messages to track the order of events. But how exactly that time is generated? --- > This question was ...
1 Votes
1 Answers
5K Views
1 Votes 1 Answers 5K Views
I'm working on a TON smart contract that may need to store up to 4 million bits. I understand from the TON documentation that this isn't typically recommende...
3 months ago
0 Votes
1 Answers
6K Views
0 Votes 1 Answers 6K Views
As far as I understand, NFTs in TON are just smart contracts that implement a specific interface. Suppose I create a wallet, an explorer or some other produc...
4 months ago
0 Votes
1 Answers
1K Views
0 Votes 1 Answers 1K Views
Minting NFTs can be done in a randomized way. Are there random minters in the TON ecosystem with an open source code? --- > This question was imported from T...
0 Votes
0 Answers
2K Views
0 Votes 0 Answers 2K Views
Is it possible to programmatically monitor what smart contracts were deployed on TON on any given day? Not just general statistics "how much contracts were d...
6 months ago
0 Votes
2 Answers
3K Views
0 Votes 2 Answers 3K Views
I'm looking for a good tutorial to make an NFT smart contract on TON. --- > This question was imported from Telegram Chat: https://t.me/tondev_eng/10064
9 months ago
0 Votes
1 Answers
3K Views
0 Votes 1 Answers 3K Views
I am using the TON API to fetch transaction data, and I have noticed some discrepancies when using the /getTransactions, /lookupBlock, and /getBlockTransacti...
0 Votes
1 Answers
9K Views
0 Votes 1 Answers 9K Views
Please, could you help me to understand why my TON node cant sync Load average[8]: 1.34, 1.26, 1.29 Network load average (Mbit/s): 9.44, 8.71, 48.85 Memory l...