From 630c59c688778e2d2e641203cb845140709a500a Mon Sep 17 00:00:00 2001 From: Nikita Kuznetsov Date: Thu, 13 Apr 2023 14:03:53 +0200 Subject: [PATCH 1/3] Init lockable-jetton-wallet --- text/0000-lockable-jetton-wallet.md | 63 +++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 text/0000-lockable-jetton-wallet.md diff --git a/text/0000-lockable-jetton-wallet.md b/text/0000-lockable-jetton-wallet.md new file mode 100644 index 0000000..420410b --- /dev/null +++ b/text/0000-lockable-jetton-wallet.md @@ -0,0 +1,63 @@ +- **TEP**: [0](https://github.com/ton-blockchain/TEPs/pull/0) *(don't change)* +- **title**: Lockable Jettons Wallets +- **status**: Draft +- **type**: Contract Interface +- **authors**: [KuznetsovNikita](https://github.com/KuznetsovNikita) +- **created**: 13.04.2023 +- **replaces**: - +- **replaced by**: - + +# Summary + +This proposal suggests extending the standard Jetton Wallet by adding the option `get_locked_balance` get method. + +# Motivation + +New contracts have may want to disable jetton transfer until a time in the future. For this case, the Jetton Wallet should show zero balance to not affect old services and add a new get method to allow to get a locked balance and expiration date. + +The standard may use for: +1. Jetton DAO contract may want to disable jetton transfer until voting is in progress. +2. Jetton Vesting contract may want to release tokens in the future. + + +# Guide + +Upon calling `get_locked_balance` get method Jetton Wallet should respond with integer jetton balance, integer jetton locked balance, and expiration date in integer UNIX epoch seconds format. + +# Specification + +## New Jetton Master contracts +An example of the implementation jetton wallet code can be found [here](https://github.com/OpenProduct/jetton-dao-contracts/blob/ece785f82e07a7833194992cfc0e2fa1a690b524/contracts/jetton_wallet.func#L367) + + +Jetton Wallet should implement the get method: + +``` +(int, int, int) get_locked_balance() method_id { + (int balance, slice owner_address, + slice jetton_master_address, cell jetton_wallet_code, + int locked, int lock_expiration, + cell vote_keeper_code) = load_data(); + return (balance, locked, lock_expiration); +} +``` + +# Drawbacks + +The standard implies single expiration date single locked balance. + +# Rationale and alternatives + +This design allows us to show balance and locked balance in a user-friendly and clear format in blockchain explorers and wallets. + +# Prior art + +- + +# Unresolved questions + +- + +# Future possibilities + +- From 92c692048a2a28baab37be2168b3b96092823a1b Mon Sep 17 00:00:00 2001 From: Nikita Kuznetsov Date: Thu, 13 Apr 2023 14:06:32 +0200 Subject: [PATCH 2/3] Update headers --- text/0000-lockable-jetton-wallet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-lockable-jetton-wallet.md b/text/0000-lockable-jetton-wallet.md index 420410b..5966181 100644 --- a/text/0000-lockable-jetton-wallet.md +++ b/text/0000-lockable-jetton-wallet.md @@ -26,7 +26,7 @@ Upon calling `get_locked_balance` get method Jetton Wallet should respond with i # Specification -## New Jetton Master contracts +## Jetton Wallet contracts An example of the implementation jetton wallet code can be found [here](https://github.com/OpenProduct/jetton-dao-contracts/blob/ece785f82e07a7833194992cfc0e2fa1a690b524/contracts/jetton_wallet.func#L367) From a06399ede23e631f11d13dd1911b7c9f61166642 Mon Sep 17 00:00:00 2001 From: Nikita Kuznetsov Date: Thu, 13 Apr 2023 14:08:07 +0200 Subject: [PATCH 3/3] Update title --- text/0000-lockable-jetton-wallet.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/0000-lockable-jetton-wallet.md b/text/0000-lockable-jetton-wallet.md index 5966181..2435f9a 100644 --- a/text/0000-lockable-jetton-wallet.md +++ b/text/0000-lockable-jetton-wallet.md @@ -1,5 +1,5 @@ - **TEP**: [0](https://github.com/ton-blockchain/TEPs/pull/0) *(don't change)* -- **title**: Lockable Jettons Wallets +- **title**: Lockable Jetton Wallet - **status**: Draft - **type**: Contract Interface - **authors**: [KuznetsovNikita](https://github.com/KuznetsovNikita) @@ -9,7 +9,7 @@ # Summary -This proposal suggests extending the standard Jetton Wallet by adding the option `get_locked_balance` get method. +This proposal suggests extending the Jetton Wallet by adding the option `get_locked_balance` get method. # Motivation