Skip to content

Conversation

@eho-send
Copy link
Contributor

@eho-send eho-send commented Jan 9, 2026

Hi,

If you ended up here. You probably did something stupid like try to merge main into dev.

fysi

eho-send and others added 30 commits December 1, 2025 14:48
* Fix/sen 164 remove verifying paymaster from deposit (#2260)

* fix(earn): remove sendVerifyingPaymasterAddress validation and client override

The deposit flow should use tokenPaymasterAddress for gas estimation
(which doesn't require a signature). The server will sponsor the
operation by signing with sendVerifyingPaymasterAddress regardless of
what paymaster the client sends.

Changes:
- Remove paymaster validation from paymasterSign endpoint (server-side)
- Remove sendVerifyingPaymasterAddress override from deposit screen (client-side)
- Remove unused sendVerifyingPaymasterAddress import

The server always signs with sendVerifyingPaymasterAddress - the client
just needs to send a valid operation for gas estimation.

Fixes SEN-164

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(earn): restore paymaster address override for Send Earn deposits

The previous commit (619811c) incorrectly removed the client-side
paymaster override. The correct flow is:

1. useUserOp estimates gas with tokenPaymasterAddress (no signature needed)
2. Server signs with sendVerifyingPaymasterAddress and returns paymasterData
3. Client overrides paymaster to sendVerifyingPaymasterAddress before signing

This restores the original working pattern from CDP Bundler (e821219).

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix(earn): restore paymaster address override for Send Earn deposits

Reset deposit screen to last working state (0bda61f) which correctly
overrides the paymaster address after getting paymasterData from server.

The flow is:
1. useUserOp estimates gas with tokenPaymasterAddress (no signature needed)
2. Server signs with sendVerifyingPaymasterAddress and returns paymasterData
3. Client overrides paymaster to sendVerifyingPaymasterAddress before signing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Refactor sendpot ticket verification weights

Why:
Simplifies sendpot_ticket_purchase verification by storing the actual
weight value directly in the database instead of requiring custom
calculation logic in the distributor. This change improves consistency
across all verification types and reduces code complexity.

Previous implementation stored ticket BPS in the weight column and
required the distributor to convert BPS to ticket count, divide by 10,
and multiply by fixed value. This was inconsistent with other
verification types which use weight directly.

New implementation:
- Adds sendpot_ticket_increment column to distributions table (default: 10)
- Calculates weight in database: floor(tickets_purchased_count / increment)
- Stores raw ticket count in metadata.value for transparency
- Removes ~17 lines of custom logic from distributorv2.ts
- Makes sendpot_ticket_purchase work like all other verification types

Changes:
- Database: Added sendpot_ticket_increment column to distributions table
- Functions: Updated insert_verification_sendpot_ticket_purchase() trigger
  and insert_sendpot_ticket_purchase_verifications() batch function to
  calculate weight using tickets_purchased_count / sendpot_ticket_increment
- Metadata: Added 'value' field to store raw ticket count per jackpot period
- Distributor: Removed custom sendpot BPS-to-ticket conversion logic,
  replaced with standard fixedValue * weight calculation
- Migration: Created backfill script to update existing verification rows

Test plan:
- Run yarn supabase migration:diff --check (no schema drift)
- Run yarn supabase reset (all 300+ migrations compile successfully)
- Verify backfill migration updates existing verifications correctly
- Deploy to staging and monitor distributor calculations
- Compare distribution shares before/after to ensure parity
- Test with various ticket counts (0, 9, 10, 125) to verify weight calculation

* Fix schema drift

Refactor sendpot ticket verification weights

* Account deletion activity impact (#2264)

* Account deletion db function and endpoint (#2266)

* Add send referral (#2267)

* Add send referral

* update 2

* update 2

* feat: framer motion as animation driver web (#2265)

* feat: new motion driver for web

* feat(send): improve sendchat animation

* fix(ReferralLink): make its animation to work

* feat: improve animation multiple places

* fix(CoinsModal): theme dark opacity issue

* fix(send): amount input not focusing automatically

* feat(motion): make it to support milliseconds instead of seconds

* feat(send): improve animation

* fix(SendSuggestions): use milliseconds for delay

* feat(send): improve performance

* [SEN-205] Fix db unit tests detecting active distribution on month split (#2270)

* [SEN-170] Fix canton search and top senders to check is_discoverable instead of is_public (#2271)

* [SEN-191] Show main tag in referrals screen (#2272)

* Deutsch (#2269)

* add deutsch locale and config

* deutsch resource files

---------

Co-authored-by: Big Boss <bigboss@metalrodeo.xyz>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: youngkidwarrior <victor@she.energy>
Co-authored-by: Mikołaj Musidłowski <38129890+musidlo@users.noreply.github.com>
Co-authored-by: Ehsan sarshar <46188784+byteab@users.noreply.github.com>
Co-authored-by: patrick <pathoam@pm.me>
fix: resolve sign-up page overlap and verified badge positioning (#2277)
Fix missed lint error with BigInt conversion
deploy: Add support for external Ethereum addresses in SendChat
Send check minor ux fixes (#2370)
Add icon for claimed/invalid send checks message & Fix retry (#2392)
@eho-send eho-send changed the title Main Oops Jan 9, 2026
eho-send and others added 20 commits January 9, 2026 15:37
fix security invoker bug (#2504)
fix inverted for analytics service(#2512)
refactor(bank-transfer): display bank_address instead of beneficiary …
Business onboarding improvements (#2547)
Fix missing migration for vba (#2549)
Revert Portal for bottom navbar in native app
fix(localnet): resolve docker compose networking issues (#2572)
@github-actions
Copy link

Playwright Report

Artifacts: View all artifacts | JSON Report: json-report--attempt-1 | HTML Report: html-report--attempt-1

Summary

Passed Skipped Failed Flaky Duration Pass Rate
54 2 35 0 1805.85s 60.7%

Suites

account-sendtag-add.onboarded.spec.ts (5/5 passed)

can visit add sendtags page

  • chromium: ✅ passed

can add a pending tag

  • chromium: ✅ passed

cannot add an invalid tag name

  • chromium: ✅ passed

cannot add more than 5 tags

  • chromium: ✅ passed

cannot confirm a tag without paying

  • chromium: ✅ passed
account-sendtag-checkout.onboarded.spec.ts (0/3 passed)

can confirm a tag

  • chromium: ❌ failed
    TimeoutError: page.waitForRequest: Timeout 15000ms exceeded while waiting for event "request"
    

can refer a tag

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoHaveValue�[2m(�[22m�[32mexpected�[39m�[2m)�[22m
    

can refer multiple tags in separate transactions

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoHaveValue�[2m(�[22m�[32mexpected�[39m�[2m)�[22m
    
account-settings-backup.onboarded.spec.ts (0/2 passed)

can backup account

  • chromium: ❌ failed
    �[31mTest timeout of 30000ms exceeded.�[39m
    

can remove a signer

  • chromium: ❌ failed
    �[31mTest timeout of 30000ms exceeded.�[39m
    
account.logged-in.spec.ts (2/2 passed)

can visit account page

  • chromium: ✅ passed

can update profile

  • chromium: ✅ passed
activity.onboarded.spec.ts (0/1 passed)

can visit activity page and see correct activity feed

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoContainText�[2m(�[22m�[32mexpected�[39m�[2m)�[22m
    
contacts.onboarded.spec.ts (0/0 passed)
earn.onboarded.spec.ts (0/0 passed)
home.onboarded.spec.ts (1/1 passed)

can visit token detail page

  • chromium: ✅ passed
leaderboard.logged-in.spec.ts (0/0 passed)

can visit leaderboard page

  • chromium: ⏭️ skipped
onboarding.logged-in.spec.ts (1/1 passed)

can visit onboarding page

  • chromium: ✅ passed
profile-external-address.anon.spec.ts (0/0 passed)
profile-external-address.onboarded.spec.ts (0/0 passed)
profile.anon.spec.ts (1/2 passed)

anon user can visit public profile

  • chromium: ❌ failed
    Error: expect.toBeVisible: Error: strict mode violation: getByText('Sarah Stiedemann') resolved to 2 elements:
    

anon user cannot visit private profile

  • chromium: ✅ passed
profile.logged-in.spec.ts (0/1 passed)

logged in user needs onboarding before visiting profile

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    
profile.onboarded.spec.ts (4/4 passed)

can visit other user profile and send by tag

  • chromium: ✅ passed

can visit my own profile

  • chromium: ✅ passed

can visit private profile

  • chromium: ✅ passed

can view activities between another profile

  • chromium: ✅ passed
send-token-upgrade.onboarded.spec.ts (0/1 passed)

can upgrade their Send Token V0 to Send Token V1

  • chromium: ❌ failed
    Error: locator.waitFor: Timeout 2000ms exceeded.
    
send.onboarded.spec.ts (0/13 passed)

can send USDC starting from profile page

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send USDC using tag starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send USDC using sendid starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send USDC using address starting from home page

  • chromium: ❌ failed
    Error: expect.toBeVisible: Error: strict mode violation: getByText('0xF91...FE8a') resolved to 2 elements:
    

can send SEND starting from profile page

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send SEND using tag starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send SEND using sendid starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send SEND using address starting from home page

  • chromium: ❌ failed
    Error: expect.toBeVisible: Error: strict mode violation: getByText('0x6EA...caFB') resolved to 2 elements:
    

can send ETH starting from profile page

  • chromium: ❌ failed
    Error: �[31mTimed out 5000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send ETH using tag starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send ETH using sendid starting from home page

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    

can send ETH using address starting from home page

  • chromium: ❌ failed
    Error: expect.toBeVisible: Error: strict mode violation: getByText('0xfb5...d33F') resolved to 2 elements:
    

cannot send below minimum amount for SEND token

  • chromium: ❌ failed
    Error: �[31mTimed out 10000ms waiting for �[39m�[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m()�[22m
    
sendtag-happy-path.onboarded.spec.ts (0/1 passed)

sendtag complete happy path - create, confirm, and change main tag

  • chromium: ❌ failed
    TimeoutError: page.waitForRequest: Timeout 15000ms exceeded while waiting for event "request"
    

sendtag main tag succession - auto-assigns new main when current is deleted

  • chromium: ⏭️ skipped
sign-in.anon.spec.ts (3/3 passed)

redirect on sign-in

  • chromium: ✅ passed

redirect to send page on sign-in with recipient params

  • chromium: ✅ passed

old user can login using phone number

  • chromium: ✅ passed
sign-up.anon.spec.ts (2/2 passed)

can sign up

  • chromium: ✅ passed

country code is selected based on geoip

  • chromium: ✅ passed
swap.onboarded.spec.ts (2/5 passed)

can swap USDC for SEND

  • chromium: ❌ failed
    Error: Timeout 3000ms exceeded while waiting on the predicate
    

can swap USDC for ETH

  • chromium: ❌ failed
    Error: Timeout 3000ms exceeded while waiting on the predicate
    

can refresh swap form and preserve filled data

  • chromium: ❌ failed
    Error: Timeout 3000ms exceeded while waiting on the predicate
    

can't access form page without accepting risk dialog

  • chromium: ✅ passed

can't access summary page without filling swap form

  • chromium: ✅ passed

@eho-send eho-send closed this Jan 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants