Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

address update proposal #123

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
21 changes: 12 additions & 9 deletions text/0002-address.md

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

text/0002-address.md

This comment was marked as spam.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great

Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ B) "User-friendly", which is obtained by first generating:
- 32 bytes containing 256 bits of the smart-contract address inside the workchain (big-endian)
- 2 bytes containing CRC16-CCITT of the previous 34 bytes

In case B), the 36 bytes thus obtained are then encoded using base64 (i.e., with digits, upper- and lowercase Latin letters, '/' and '+') or base64url (with '_' and '-' instead of '/' and '+'), yielding 48 printable non-space characters.
In case B), the 36 bytes thus obtained are then encoded using base64url (with '_' and '-' instead of '/' and '+'), yielding 48 printable non-space characters.

Example:

Expand All @@ -51,27 +51,30 @@ and

in the "user-friendly" form (to be displayed by user-friendly clients).

Notice that both forms (base64 and base64url) are valid and must be accepted.

## Wallets applications

At the moment, TON wallets work with addresses as follows:

For receiving:

- Wallets display the user's address in a user-friendly bounceable or non-bounceable form (at the moment, the majority of wallet apps display bounceable form).
- Wallets display the user's address in a user-friendly non-bounceable form.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

text/0002-address.md


- Addresses of other smart contracts (DEXes, NFT, etc.) are displayed in a user-friendly bounceable form.

When sending:

1) The wallet app checks the validity of the destination address representation - its length, valid characters, prefix and checksum. If the address is not valid, then an alert is shown and the sending operation is not performed.
1) The wallet apps accept only user-friendly address form and don't accept "raw" address form.

2) The wallet app checks the validity of the destination address representation - its length, valid characters, prefix and checksum. If the address is not valid, then an alert is shown and the sending operation is not performed.

2) If the address has a testnet flag, and the wallet app works with the mainnet network, then an alert is shown and the sending operation is not performed.
3) If the address has a testnet flag, and the wallet app works with the mainnet network, then an alert is shown and the sending operation is not performed.

3) The wallet app retrieve from address bounceable flag.
4) The wallet app retrieve from address bounceable flag.
if `true` - all messages to this address can ONLY be sent in bounceable mode, even if the destination contract has an `uninitialized` state.

4) The wallet app check the destination address - if it has `unitialized` state wallet force set `bounce` field of sending message to `false` and ignore bounceable/non-bounceable flag from address representation.
if `false` - means that a non-bounceable message can be sent to the destination address.

5) If destination is not `unitialized` then wallet app uses the bounceable/non-bounceable flag from the address representation for the `bounce` field of sending message.
The wallet app checks the destination address - if it has an `uninitialized` state, then it sends a non-bounceable message, otherwise it sends a bounceable message.

## Public keys

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

text/0002-address.md

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

S5GBV4VFFSVSW6VVFYBEAEVTNYCM6ZVP

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


Expand Down