Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
70 changes: 70 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Linter checks

env:
HUSKY: 0

on:
pull_request:
branches: ["**"]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
pull-requests: write

jobs:
linter:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- name: Install dependencies
run: |
corepack enable
npm ci

- name: Get changed MDX and Markdown files
id: changed-files
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: |
**.md
**.mdx

- name: Check formatting of MDX and Markdown files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
echo
echo -e 'Checking formatting on the following MDX and Markdown files affected by this PR:\n'
for file in ${ALL_CHANGED_FILES}; do
echo "- $file"
done
if [ -z $(echo -e "${ALL_CHANGED_FILES[@]}" | tr -d '[:space:]') ]; then
echo -e "\nNo such files affected!"
exit 0
fi
echo
npx remark --no-stdout --quiet --frail --silently-ignore $(echo -e "${ALL_CHANGED_FILES[@]}" | tr '\n' ' ')

- name: How to fix the formatting? See these suggestions!
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
if: failure()
run: |
echo
echo -e "Install necessary dependencies: \033[31mnpm ci\033[0m"
echo -e "Then, run this to fix formatting: \033[31mnpx remark -o --quiet --silently-ignore $(echo -e "${ALL_CHANGED_FILES[@]}" | tr '\n' ' ')\033[0m"
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.mdx
15 changes: 15 additions & 0 deletions .remarkignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Ignore folders
node_modules/
pending/

# Ignore some whitepapers
language/fift/whitepaper.mdx
ton/tbl.mdx
ton/ton.mdx
ton/tvm.mdx

# Ignore root index.mdx file
index.mdx

# Ignore generated files
tvm/instructions.mdx
29 changes: 20 additions & 9 deletions .vale/config/vocabularies/Custom/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Avacoin
Axios
Basechain
Binance
Birman
Bitshares
Blockchain
Blockscout
Expand Down Expand Up @@ -43,6 +44,8 @@ Codium
Coinbase
Combinator
Configurator
Configurator
Connect's
Coq
Crowdin
Cryptobot
Expand Down Expand Up @@ -72,6 +75,7 @@ Etherscan
Everscale
FTs
Fift
Figma
Flappy
Frontmatter
GTon
Expand Down Expand Up @@ -103,7 +107,9 @@ Kiayas
Kol
Kol
Kolya
Lamport
Latinisms
Liskov
Liteclient
Litecoin
Lottie
Expand Down Expand Up @@ -135,9 +141,12 @@ Offchaining
Ona
Onda
PDFs
PDFs
PRNG
PRNGs
Pavel
Pavel
Pease
Permissionless
Phaser
Precompiled
Expand Down Expand Up @@ -165,6 +174,7 @@ Schnorr
Sedov
Serializable
Sharding
Shostak
Singlechain
Snarkjs
Solana
Expand All @@ -178,6 +188,7 @@ TVM
TVM's
TVMs
Tal
Tanenbaum
Tblkch
Tencent
Testnet
Expand Down Expand Up @@ -216,7 +227,10 @@ Walletconnect
Watchlist
Webserver
Weil
XORing
Xia
Yolo
Yu
Yung
ZK-proof
Zellic
Expand Down Expand Up @@ -326,15 +340,13 @@ combinator
combinator's
combinators
componentwise
configurator
Configurator
Connect's
content_url
composable
configs
configurator
configurator
consortiums
content_url
content_url
cron
crosschain
crypto
Expand Down Expand Up @@ -476,12 +488,12 @@ namespace
namespaces?
nanoTons
nanoTons
nano[tT]oncoins?
nanogram
nanograms
nanos?
nanoton
nanotons
nano[tT]oncoins?
navbar
nft
nonexist
Expand All @@ -500,8 +512,6 @@ onwards
param
parameterization
paywalled
Pavel
PDFs
performant
permissionless
plaintext
Expand All @@ -519,6 +529,7 @@ preimage
preimages
preloading
preloads
projectId
prometheus
proxying
pseudocode
Expand Down Expand Up @@ -593,8 +604,8 @@ subtree
subtrees
subwallet
subwallet
subwallets
subwallet_id
subwallets
sudo
superserver
swappable
Expand Down Expand Up @@ -636,6 +647,7 @@ unsplit
untrusted
untyped
updatable
utils
vCPUs
valid_until
validator
Expand All @@ -652,4 +664,3 @@ workchain
workchain_id
workchains
xy
Figma
20 changes: 8 additions & 12 deletions ecosystem/explorers/tonviewer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ They are essential for identifying transactions and tracing data flow across the

In Tonviewer, operations are visualized through traces.
A trace is a directed acyclic graph (DAG) where:

- transactions are nodes on a specific address
- messages are edges

Expand All @@ -39,6 +40,7 @@ Examine the accounts involved — wallet addresses, jetton wallets, jetton maste
3. **Inspect messages**

For each edge, review its payload:

- value — amount of TON or jettons transferred
- opcode — instruction type
- payload — instructions
Expand All @@ -62,10 +64,11 @@ Analyze a [jetton transfer](https://tonviewer.com/transaction/d5d50c3e5bde493ddc
![NFT transfer](/resources/images/tonviewer/jetton_transfer.png)

1. **Identify the entry point**
At point **A** (mintmachine.ton), an external-in message initiates the operation, instructing a jetton transfer.
At point **A** (`mintmachine.ton`), an external-in message initiates the operation, instructing a jetton transfer.

2. **Track participants**
- A — sender’s wallet contract (mintmachine.ton).

- A — sender’s wallet contract (`mintmachine.ton`).
- B — Jetton wallet contract governed by the Jetton master.

3. **Inspect messages**
Expand All @@ -81,7 +84,6 @@ The transaction at **B** failed during execution, with a non-zero exit code.
Exit code `48` per Jetton contract logic indicates that there isn't enough gas to complete the transfer.
The attached TON was insufficient to cover execution and forwarding, so the contract aborted the transfer.


### NFT transfer

Analyze an [NFT transfer](https://tonviewer.com/transaction/d8b5dbfe1c115178f47b486d03982159ec8abe684cdbe1c75587293e877564d4) attempt.
Expand Down Expand Up @@ -111,7 +113,6 @@ The transaction at **B** failed in the compute phase, with an exit code of `401`
Exit code `401` (per NFT standard documentation) means that the sender is not the owner of the NFT.
Because the ownership check failed, the contract rejected the transfer and returned the unused funds to **A**.


### DEX swap

Analyze a [token swap](https://tonviewer.com/transaction/fa8e119f8911d20bb078b9b81a3fc1f8ff2bcc723eda3ac7e873e97f455812e7) from **DYX** to **pTON**.
Expand All @@ -120,10 +121,11 @@ Analyze a [token swap](https://tonviewer.com/transaction/fa8e119f8911d20bb078b9b

1. **Identify the entry point**

The trace begins at point **A** (the user’s mintmachine.ton contract). An external-in message initiates the swap attempt.
The trace begins at point **A** (the user’s `mintmachine.ton` contract). An external-in message initiates the swap attempt.

2. **Track participants**
- A — user’s mintmachine, sending the initial funds.

- A — user’s `mintmachine.ton`, sending the initial funds.
- B — user’s jetton wallet.
- C — DEX jetton wallet.
- D — DEX smart contract executing the swap.
Expand All @@ -147,9 +149,3 @@ Transactions in A, B, C, D, and E all completed with exit code 0. No phase error
The issue appears in the payload of **E → D**. The `exit_code: 962605456` corresponds (per Ston.fi docs) to _Swap out token amount is less than provided minimum value_.

This explains why, despite all transactions succeeding, the swap reverted: the output did not satisfy the minimum slippage tolerance.






Loading