TTT contract is stoppable, so that when we move to a better version of the feature which for instance allows anonymous payments or escrow instead of direct payment, we don't have version mismatches with older clients.
The current implementation will check if the contract is stopped when the user logs in, if it is, tribute to talk filter will be disabled, user will be warned and all messages will be accepted
@3esmit since we are going to put this one as a bounty could you explain here how to check if the contract is stopped?
There is a public boolean named stopped, which, in embark/web3.js, can be accessed by await MessageTribute.methods.stopped().call();
This is the corresponding line in the smart contract source:
https://github.com/status-im/contracts/blob/6c854c6a8873b4734c0ba106d807fbdf2ecb6960/contracts/communication/MessageTribute.sol#L14
@3esmit thank you! could you deploy a version of the contract that is stopped so that we can make a build that uses it to test this bounty?
Yes. I can also stop the current one and reenable it later.
@yenda @3esmit what size bounty should this be?
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
__Workers have applied to start work__.
These users each claimed they can complete the work by 12Â months ago.
Please review their action plans below:
1) celebritydeveloper has applied to start work _(Funders only: approve worker | reject worker)_.
I can fix this contract in 3 days.
Learn more on the Gitcoin Issue Details page.
Hi @uivlis, TTT is Tribute to Talk, our paywall feature for chat. It allows any user to set a minimum required _tribute_ that must be paid before they can be messaged. You can read the initial spec here, and there's some additional information in this PR as well.
@yenda and @3esmit can advise on this particular issue. I'll see if we can get you approved through Gitcoin tomorrow. Thanks for applying!
Thank you @rachelhamlin for the references. Can't wait to get going.
Alright, I'm lost.
I see Clojure everywhere, although the tag on Gitcoin was "Javascript". Never mind, I can still do it. But, I am unable to find the TTT contract in this repo.
@yenda @3esmit Would any of you be willing to put me up to speed in a small brief about where should I look at? I would be quite thankful.
@uivlis hello, at this point I think the best solution is to start your PR from #8228 (edited)
you can get existing contract addresses with contracts/get-address in src/status_im/ethereum/contracts.cljs
you can call the contract function with json-rpc/eth-call in src/status_im/ethereum/json_rpc.cljs
the call will look like this:
(json-rpc/eth-call
{:contract address
:method "stopped()"
:outputs ["boolean"]
:on-success
(fn [[stopped?]]
(on-success stopped?))})
@uivlis actually this PR https://github.com/status-im/status-react/pull/8228
Am I correct that I cannot build Status on a Windows machine? I couldn't find anything on the matter, except for this document which ceased to work: https://github.com/status-im/wiki.status.im/blob/master/docs/contributing/development/building-status.md.
@PombeirP should'nt this be updated with the new nix environment?
Am I correct that I cannot build Status on a Windows machine? I couldn't find anything on the matter, except for this document which ceased to work: https://github.com/status-im/wiki.status.im/blob/master/docs/contributing/development/building-status.md.
@yenda @uivlis I wasn't even aware of that page, it looks quite out-of-date and should probably be removed. The official documentation is at https://status.im/build_status/
Windows is not supported as a build platform (only as a target platform when building from Linux). It would be quite complicated to support for little return, when we can already target it on Linux. Maybe an easier solution to build on Windows would be WSL2, which seems to support Nix much better.
Alright, I can't install WSL2 at least not until June (when it's released), and even if I install WSL there's just too much hassle with installing git and getting the graphics to work from a command prompt and so on.
At this point, I think it would be best to stop work. I always wanted to have a Linux machine, but time will tell when that's going to be... Thank you, though, for your kind help, and accept my apologies.
Hi @uivlis can you confirm that you are stopping work on this?
@iamessien - I don't know how to contact this guy, profile doesn't link to an active GH account, anyone have any idea how to reach them?
Yes, I already stopped work on Gitcoin.
Hi @uivlis—sorry that we didn't communicate this beforehand. Will update our issues in the future to mention that Windows is not supported. Thanks so much for trying to make it work.
@iamessien @speedyfixer hey guys, is one of you still interested in working on this bounty? :)
Hi @rachelhamlin, Yes, I'm available to work in this issue this week. :)
Awesome :) @StatusSceptre is it possible to approve @speedyFixer for work on this?
@3esmit do we already have a version of the simple contract that can be stopped and that is deployed on ropsten? If possible the best would be one deployed contract that is stopped and one that is not stopped so that the dev can try both use cases
@yenda I can implement the same stoppable scheme as this one in the current version of the contract.
For the test envoirment, I would then create a presetup of defined addresses, and then stop this contract and deploy another one which simulates a migration.
I can also deploy another non stopped which not simulate a migration, which simulate the starting point on mainnet.
The contract is mapped address -> values, this address is derived from the pubkey on the contact. So for testing I will use an account and set tribute on the stopped contract to then stop it and not set on the migration tester, which would be loading values from the stopped contract if there was none set in the new contract.
for this issue we only need a version of the simple contract with stopped deployed 2 times on ropsten:
regarding the migration we can continue the discussion on the other issue related to the ttt contract this one is just for the bounty on adding stopped capability
metadata.json :
bzz-raw://9592e5524a4e3916b573ec911df7f8b329700b2d385ee3e05f1cf5a29cc672a5
Stopped=true contracts:Ropsten @ 0xb6492bD0542E9018d5b89AFbD1d1D1C4c5bF3851
Rinkeby @ 0xB689b2fE7B6a4C4E8a1A0540b97E4dD604bA0f22
Goerli @ 0xB689b2fE7B6a4C4E8a1A0540b97E4dD604bA0f22
Stopped=false contracts:Ropsten @ 0x2E228558be6b0b8e13E7Cd1E4a5B383185DdC9eb
Rinkeby @ 0x9c810fBa65556b76229F1F3680De9De402565E27
Goerli @ 0x9c810fBa65556b76229F1F3680De9De402565E27
I'm waiting the approval to start working :)
Hi, just an update, I'm reading the TTT spec and the things around it.
Hey @speedyFixer - great! I've been notified that you're approved. Do you have what you need to get started?
Yes! I am reading the PR, the spec and other things related to TTT
@speedyFixer because ttt is disabled you need to enable. The simplest way to do so is in utils.config
@yenda Thanks!
@yenda "user will be warned", what kind of UI would be OK for this purpose?
Hey @speedyFixer! Sorry for the delay. @yenda is now out on holiday for two weeks so it will be a minute before he gets back to you.
Perhaps we can work on the underlying logic while setting aside the UI requirement, at least until @yenda is back.
We do have a screen we could use for the disabled state (here), though no warning UI yet.

Thanks @rachelhamlin !
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
Hi @gitcoinbot , yes, I'm working on this, I will submit a PR tomorrow :) thanks
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@gitcoinbot I'm working on this today, I will send the PR today...
I have some problems with my machine, sorry for this delay. In the meantime, anyone could help me with #8469 , I will try to build again, tomorrow. Thanks
Hmm. Looks like Pedro is on #8469. Let us know if it continues to be a blocker @speedyFixer!
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
@speedyfixer due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
Hi, I'm going to finishing It this weekend and part of Monday. I had troubles building the last version of status with my PC, I haven't tried again. Sorry because I forgot to write you about the status of the work.
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@gitcoinbot yes, It almost done, I'm waiting for testing the last things and make the PR this weekend.
@gitcoinbot the weekend is over, but I'm working on this, at night I will fix some issues and I will send a PR.
@speedyfixer Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
@gitcoinbot Yes!
@yenda I'm checking if the contract is stopped on "on-return-from-background", Is It OK? or do you prefer the validation only after user login?
@rachelhamlin a Signing with Password is required for disable the TTT feature by the user, because that is a Contract Interaction, but I think It's a odd behavior for the user since a sudden signing request will be showed with no previous informative screen.
Anyone here?
Hello sorry for the delay @speedyFixer and thank you for working on this. Since we are integrating multiaccounts in the next release, TTT will have to be reworked completely so this issue isn't relevant anymore at the moment.
To answer your question there shouldn't have been any contract interaction, the TTT contract can be disabled by the owner, this is done by setting a boolean that all clients can read, when the contract has been disabled, old clients disable TTT locally.
In other words: the contract has a "kill switch", that we control. When the kill switch is activated, older clients who don't know about the new contract, stop using the TTT feature.
This is done so that old clients can still be reached by newer clients after the TTT contract is upgraded, because the older clients can't be "teached" how to use the new TTT.
We are probably going to come up with a better solution for that now.
Since you already spent some time on the issue @StatusSceptre could you close the bounty and pay up @speedyFixer
I'm sorry about that @speedyFixer—we've been really focused on getting v1 ready and a few things slipped through the cracks.
thanks @yenda for your explanation, If the Boolean was True then I was disabling the contract by a contract interaction.
I think I can work in a future bounty related to TTT, I will stay attentive for work on this issues. :)
@rachelhamlin No problem :+1: , I comprehend your situation.
Keep up the good work, Status is awesome :).
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
__Work for 120.0 DAI (120.0 USD @ $1.0/DAI) has been submitted by__:
@StatusSceptre please take a look at the submitted work:
Hi, I don't know what to do with this in Gitcoin, I submitted work, because I spent time in this, but I didn't generate any fix really, so, should I stop the work? I was working in two issues with the same problem.
Hi @speedyFixer - yes, you can stop working. The team who manages GitCoin for us has been out the past couple of weeks, hence these active issues, but we are working out a way to pay you for your effort.
@rachelhamlin done!
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
__The funding of 120.0 SAI (120.0 USD @ $1.0/SAI) attached to this issue has been approved & issued to @speedyfixer.__