-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multisig batching #406
Multisig batching #406
Conversation
19d8f7f
to
5f687d8
Compare
5f687d8
to
70e1a40
Compare
import { CONTRACT_LIST, getContract } from '../lib/contracts' | ||
|
||
export default class Approve extends SolanaCommand { | ||
static id = 'serum_multisig:approve' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When is this going to be used?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reopening this, the whole purpose of the multisig command is validation. Here the users will approve proposals they don't know what they do.
If approval batching is required, it should be built within the multisig wrapper, so Gauntlet can make proper validations and inform the users about the actions they'll do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a quick workaround from an immediate need: without batching we need a ledger approval per feed per owner. This at least reduces it to a command (per 6-7 feeds) per owner.
It would be great to fix this in the multisig wrapper, but it's a larger job since we'd need to provide inputs for multiple invocations, verify them then pack that into a single tx. This is slightly tricky UX-wise too, since each command can take additional flags, for example --secret
per ocr2:accept_proposal:multisig
.
I think the multisig wrapper needs a general re-work to stop being so stateful too. It's very easy to accidentally call the code without a proposal (or worse yet, the code is faulty and fetches no proposal), which ends up creating new proposals rather than approving.
We've already had that happen on starknet: proposalId
was missing in the implementation but the command was running successfully (and tests passing), creating new proposals over and over again: smartcontractkit/chainlink-starknet@dacaae3#diff-8257597e02534a1f29c2fcb789a25491779bd7ac33359412616550f5c422d83cR208
These commands were never meant to be executed separately on the CLI
4.3 causes build failure on some upcoming code
c58e0fb
to
f423d73
Compare
9e623c1
to
9b6ec84
Compare
import { CONTRACT_LIST, getContract } from '../lib/contracts' | ||
|
||
export default class Approve extends SolanaCommand { | ||
static id = 'serum_multisig:approve' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reopening this, the whole purpose of the multisig command is validation. Here the users will approve proposals they don't know what they do.
If approval batching is required, it should be built within the multisig wrapper, so Gauntlet can make proper validations and inform the users about the actions they'll do.
9a770db
to
783c334
Compare
This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
(DO NOT SQUASH)
serum_multisig:approve
allows approving multiple transactions at onceproposeConfig
is now a single command, replacingcreateProposal
,proposeConfig
,proposeOffchainConfig
,proposePayees
andfinalizeProposal
sendRawTx
now uses more reliable send & confirm code that can retry--proposal <PROPOSAL_ID>
localnet.sh
sets up a local node with programs pre-deployed and a pre-funded accounttoken:create_account
was changed to allow creating multiple token accounts at once (single tx)setup.dev.flow
now actually works again (pending https://github.com/smartcontractkit/gauntlet-core/pull/100)typescript
,nodejs
andgolang
were upgraded