Skip to content

Conversation

@rickyrombo
Copy link
Contributor

@rickyrombo rickyrombo commented Aug 9, 2024

Description

  • Fix for withdrawal swaps getting ratelimited on relay (currently breaking all withdrawals pretty sure)
  • Fix to only check instructions are allowed if signing the transaction
  • Implement proper signature verification on relay
  • Changes withdrawal swap transaction to use SDK (also pigeonholes it to USDC=>SOL but I think that's ok)
    • Tempted to just rip this out entirely since it's dead code now?
  • Creates new method that uses simpler transactions for withdrawals
  • Updates Typescript for SDK to 5.4.5 from 5.0.4 (matches my VS Code plugin, fixes error with indexing arrays using an enum string)

How Has This Been Tested?

Still testing

@changeset-bot
Copy link

changeset-bot bot commented Aug 9, 2024

🦋 Changeset detected

Latest commit: 4ab1d3f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@audius/sdk Patch
@audius/sp-actions Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/mjp-withdrawal-fixes

- Makes "mint" in SDK allow public keys as input
- Refactors the transfer/recovery methods in audius-backend/solana to not need audius-backend at all and use SDK
@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/mjp-withdrawal-fixes

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/mjp-withdrawal-fixes

@rickyrombo rickyrombo changed the title Mjp withdrawal fixes [PAY-3106][PAY-2914] Use SDK to withdraw USDC Aug 13, 2024
@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/mjp-withdrawal-fixes

Copy link
Contributor

@dharit-tan dharit-tan left a comment

Choose a reason for hiding this comment

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

lgtm!

Copy link
Contributor

@schottra schottra left a comment

Choose a reason for hiding this comment

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

Looks good. Does this need a changeset for SDK due to the mint argument changing type?

})
instructions.push(transferInstruction)

if (signer) {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: feels a little odd that the way you specify if there should be a prepare memo is by passing a signer? It's kind of a hidden side-effect.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

agree... potentially could add a separate "memo" param alongside the optional signer. wdyt?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that makes a little more sense. I'm struggling to remember if we actually need the prepare memo to be signed? Signing memos is optional and I'm not sure if we really need to verify this particular piece of information since it's just used as metadata when we index.

const libs = await getLibs()
return libs.solanaWeb3Manager!.getConnection()
const sdk = await audiusSdk()
return sdk.services.claimableTokensClient.connection
Copy link
Contributor

Choose a reason for hiding this comment

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

I think I understood the *Client paradigm to be that you invoked a client for each program you interacted with. If that's true, I'm curious why the ClaimableTokens client is the one that gets used as the connection source for all solana interactions?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah this sucks and I want to rewrite it. Initially I just had this initialize a new connection from the env. There's no "root" connection to pull out of SDK because each client is separately initted. I think the solve here is some "root" SolanaClient in SDK that each *Client is composed of rather than inheriting the BaseSolanaClient. Will take a stab at refactoring that.

Copy link
Contributor

Choose a reason for hiding this comment

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

Okay no worries for this PR. I just wanted to make sure I understood the intended design. I can totally see that since we need a root connection and we don't have a SolanaWeb3Manager in SDK, this is a compromise solution that gets us access to a connection when we need it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

#9441 👀

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/mjp-withdrawal-fixes

@rickyrombo rickyrombo merged commit 1072f5a into main Aug 14, 2024
@rickyrombo rickyrombo deleted the mjp-withdrawal-fixes branch August 14, 2024 01:42
audius-infra pushed a commit that referenced this pull request Aug 14, 2024
[1072f5a] [PAY-3106][PAY-2914] Use SDK to withdraw USDC (#9419) Marcus Pasell
[54a5a78] [PAY-3300] Chat blast: lazy create thread (#9424) Steve Perkins
[ca71d76] [C-4910] Audius-query-ify comments state management (#9423) JD Francis
[3026411] Fix comment reactions pkey (#9433) Isaac Solo
[13276d2] Format Solana Relay listens endpoint (#9429) Marcus Pasell
schottra added a commit that referenced this pull request Aug 15, 2024
…ts-round-3

* origin/main: (23 commits)
  Audius Protocol v0.6.169
  wrong core defaults (#9452)
  Don't decrypt plaintext messages (#9448)
  [QA-1495] Fix 404 for users (#9451)
  [PAY-3227] Unfurl tracks in composer (#9434)
  Compose Solana Client in SDK (#9441)
  Create ChatBlast from web (#9447)
  [PAY-3341] Add is_plaintext field for chat message (#9442)
  use const for constants (#9446)
  core default values (#9445)
  Rename Targeted Message to Chat Blast (#9443)
  [C-4964] Comment header changes (#9444)
  [PAY-3310] Chat blast function in sdk (#9436)
  Move comments context to common (#9440)
  [C-4910] Comments replys & deletes fixes (#9437)
  Audius Protocol v0.6.168
  [PAY-3106][PAY-2914] Use SDK to withdraw USDC (#9419)
  Add social signup feature flag (#9439)
  use comet repo and modd for hotreloading (#9431)
  Fix duplicate error name in sentry (#9430)
  ...
audius-infra pushed a commit that referenced this pull request Aug 17, 2024
[d712b07] [C-4939] Add comment action menu popup (#9472) JD Francis
[641c9c1] [C-4940] Add comment badges (desktop web) (#9475) JD Francis
[aca7b5c] [PAY-3315][PAY-3316][PAY-3323] Staking bridge (#9408) Saliou Diallo
[bdc139a] [C-4828] Add timestamp features to comments (#9455) JD Francis
[3457aeb] [QA-1504] Fix payout wallet set default (#9467) Raymond Jacobson
[8c127d0] Add comment replies pagination (#9435) Isaac Solo
[c5e250e] [C-4929] Add SendIcon component to harmony and harmony native (#9422) Kyle Shanks
[a17b30e] Hook up client blast params to sdk (#9466) Reed
[11bf6e3] Don't decrypt plaintext chat.last_message (#9470) Reed
[bcaebb0] fix TS error (#9468) JD Francis
[bb802b7] Optimistic add chat blasts (#9463) Reed
[b5de040] Fix bad claimable challenge state due to nullable max_steps (#9461) Randy Schott
[d4c34c3] Fix comment delete in audius-query (#9462) JD Francis
[95380d8] [C-4800] Scaffolding for mobile comments (#9449) Sebastian Klingler
[fbb4256] [PAY-2917] Migrate user endpoints to SDK, round 3 (#9432) Randy Schott
[2c1679a] [PAY-3307] Upgrade chat blasts to chats in sdk (V2) (#9453) Reed
[279a9b2] More explicit audience columns for chat blast. (#9454) Steve Perkins
[acb857e] Fix bug in profile page 404 (#9456) Raymond Jacobson
[c382e82] Don't decrypt plaintext messages (#9448) Reed
[172f172] [QA-1495] Fix 404 for users (#9451) Raymond Jacobson
[82ab743] [PAY-3227] Unfurl tracks in composer (#9434) Raymond Jacobson
[363af71] Compose Solana Client in SDK (#9441) Marcus Pasell
[83260f6] Create ChatBlast from web (#9447) Andrew Mendelsohn
[19e3bdf] [PAY-3341] Add is_plaintext field for chat message (#9442) Steve Perkins
[e25c679] Rename Targeted Message to Chat Blast (#9443) Reed
[fc0604c] [C-4964] Comment header changes (#9444) JD Francis
[f9e4525] [PAY-3310] Chat blast function in sdk (#9436) Reed
[910b655] Move comments context to common (#9440) JD Francis
[bb5eaa1] [C-4910] Comments replys & deletes fixes (#9437) JD Francis
[1072f5a] [PAY-3106][PAY-2914] Use SDK to withdraw USDC (#9419) Marcus Pasell
[1b7bd47] Add social signup feature flag (#9439) Sebastian Klingler
[4130f42] Fix duplicate error name in sentry (#9430) Marcus Pasell
[54a5a78] [PAY-3300] Chat blast: lazy create thread (#9424) Steve Perkins
[ca71d76] [C-4910] Audius-query-ify comments state management (#9423) JD Francis
[20a55e9] [PAY-2917][QA-1466] Migrate more users endpoints (#9308) Randy Schott
[ab38869] [QA-1434] Fix hanging uploads due to errors on mobile (#9420) Randy Schott
[f6ab71c] Add buy button metrics (#9428) Isaac Solo
[06ee8a1] Fix pagination args (#9425) Isaac Solo
[b91437a] [QA-1501] Fix mobile search input (#9426) Sebastian Klingler
[a3c15fd] [C-4932] Add CommentBody component to harmony and harmony-native (#9415) Kyle Shanks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants