stacksgov / decentralized-grants

Community-driven funding for Stacks: Empowering innovation in the Bitcoin ecosystem.
https://degrants.xyz/
3 stars 0 forks source link

TX2 - Sponsoring Service for Stacks Transactions - Friedger #7

Open Hero-Gamer opened 4 months ago

friedger commented 3 months ago

Total grant amount

$2006

Project Description

As a user, I have wrapped USD or wrapped BTC on Stacks, but I don't own STX. How can I swap or move my token on Stacks? Or I want to receive a SIP-010 token on a new account to increase privacy. How can I use the token without transferring STX from my old account to the new account? For users who do not have stx on their account, we want to offer an open source solution that allows them to pay transaction fees in other tokens than STX. This service works through so-called sponsored transactions. It can be integrated with different dApps and wallets.

This project is about documenting the service and producing educational material along the actual implementation. The implementation is not part of this grant.

Impact

Project Focus and Impact The project is infrastructure that can be used by different dApps and wallets. It removes barriers for new users to enter the Stacks ecosystem. Target Audience and Strategy The project targets developer of dApps and wallets. We will reach out individually first and try to integrate TX2 with two dApps and 1 wallet. With the experience from these integrations, we will produce better public documentation. Project Activities and Outputs Development of backend: A (serverless) service that accepts sponsored txs and signs them after validation. Documentation: Details how to integrate sponsorship services into dApps and wallets. Community outreach: Discussions about and integration with dApps and wallets.

Project Timelines, Milestones, and Deliverables

Note that the timeline is stretched to fit the Nakamoto release.

Is / will this project be open-sourced?

Yes, for POC see https://github.com/friedger/stacks-not-sponsoring/ and https://github.com/friedger/stacks-send-many

ZeroAuthorityDAO profile link

https://zeroauthority.xyz/profiles/SPM1NE6JPN9V1019930579E7EZ58FYKMD17J7RS

friedger commented 1 month ago

Milestone 1 completed: Documentation site using mkdocs available at: https://tx2.app/docs/ Documentation about send-many and nothing tokens started at: https://tx2.app/docs/send-many/

Source code of documentation: https://github.com/friedger/stacks-tx2

hozzjss commented 1 month ago

hey @friedger I just tried to use the pay fees in NOT feature and I think there's a mistake where it assumes NOT is 6 decimals while it has 0 decimals resulting in the fee being sent to be set to 100B instead of 100K and 1 NOT to be equal to 1M NOT

Hero-Gamer commented 1 month ago

Any comments or if need addressing @friedger ?

Hero-Gamer commented 1 month ago

Is this addressed @friedger ? Any update on milestone 2 and 3? Are you on track to complete by end of Oct? Thanks @hozzjss for initial review.

friedger commented 3 weeks ago

The issue with not sponsoring on sendstx.com has been addressed, it uses the correct decimals. (I also added support for BNS v2) @Hero-Gamer

Furthermore, milestone 2 and 3 have been completed, documentation for users and developers have been added. Real world examples have been described.

The result of this project can be seen at

The tx2 project is still on going and more updates will come. Next steps are:

hozzjss commented 2 weeks ago

I tried it again with 100 NOT to an address and the sponsored tx sign popup show and after I sign it doesn't send and I see this error in the network tab request uri: https://sponsoring.friedger.workers.dev/not

result: {"error":"not sponsorable"}

friedger commented 2 weeks ago

I have adjusted the minimum amount in the backend so that the sponsoring fee of 10k NOT is accepted. Before the backend required 100k.

I have also updated the documentation.

friedger commented 2 weeks ago

I just swapped 10k $NOT for 3 STX fees: https://explorer.hiro.so/txid/0xeec2b153e5d4d7eac91a824cdb51a9fca69201070d54cce9e8b551754e0610d6?chain=mainnet

friedger commented 2 weeks ago

The experience with Leather is not great. There is flickering for a few seconds and finally the sponsor info is displayed.

hozzjss commented 2 weeks ago

I tried it again but this time it showed that it works and everything but when I check the network tab it turns out it failed successfully, basically the response for sponsor was 200 but the sponsor had no funds for the sponsorship here's the error:

{
    "feeEstimate": 23245554,
    "result": {
        "error": "transaction rejected",
        "reason": "NotEnoughFunds",
        "reason_data": {
            "actual": "0x000000000000000000000000005d2dc4",
            "expected": "0x0000000000000000000000000162b2f2"
        },
        "txid": "10de32ac577ac0334e41f6df201f576422e1007cc90d6cdd3d4f36c2039ee95f"
    },
    "txRaw": "00000000010500c4a739e6e70be056920e5195e7ed579182c862aa00000000000003a100000000000000000000fdfeeb0f04f8709d48b03b782e85bb0e36fb5943e404e57df4ccb6f4d75ae62e5fa071d102c2f7ddeb37456adb4d576e1e61ad6c70d0d9b43d838c30ed3e41c8000140d5c695aa9d84014a46029d2e3bbe543fd3a30000000000000006000000000162b2f20000c425f48d5c038414ccb0e6ec1359c4cfb8becad97a6b73f43606c134b76db1c63d2854a09e65ce5e971dc2072b711652500c08b03563d0b61025c377633179b8030200000001010216c4a739e6e70be056920e5195e7ed579182c862aa16c4a739e6e70be056920e5195e7ed579182c862aa046e6f7065034e4f54010000000000004e200216c4a739e6e70be056920e5195e7ed579182c862aa046e6f70650973656e642d6d616e79000000010b000000020c0000000306616d6f756e740100000000000000000000000000002710046d656d6f0a020000000373757002746f0516db44e95d19763e15bfa09aee78deda4da87594090c0000000306616d6f756e740100000000000000000000000000002710046d656d6f0a02000000046665657302746f05160140d5c695aa9d84014a46029d2e3bbe543fd3a3"
}

I think in this case what should happen is I see an error message letting me know that I can't use NOT for fees at this time or something

Hero-Gamer commented 1 week ago

Overall docs look good, I think the only thing that could maybe use a bit of revisiting is that it's a little confusing how sponsored transactions can be used to block a hacked account, just the flow that is described there. I'm not entirely sure how it works - Kenny

friedger commented 6 days ago

I have

Hero-Gamer commented 4 days ago

Thanks Kenny Roger & @hozzjss for reviewing.

Hi @friedger please consider all 3 milestones approved & grant completed.

Milestone 1: 34% - $674 - August 31st 2024
Setup documentation site. Documentation how sendstx.com uses sponsored tx with NOT tokens.

Milestone 2: 33% - $666 - September 30th 2024
Documentation for developers how to manage sponsorship service and for users how they can participate

Milestone 3: 33% - $666 - October 31st 2024

@shaktistacks please kindly disburse payment at your convenience. Tysm!