You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What is the current behavior and expected behavior?
My team stores fund on multisigs on Polkadot and use this feature frequently. And I notice there is an odd design in the deterministic multisig private key generation. Because the generated key is deterministic and is a computation outcome of the provided signatories and threshold, one set of signatories and theshold could not own more than one multisigs due to the mentioned mechanism.
What is the motivation for changing the behavior?
Due to my understanding of the addMultisig method, by receiving the meta information which are list of signatories and theshold, new address can be generated. Wonder if we can add another parameter in the meta object called ID or nonce which is sequential or random. Hence, same set of parameters can produce different value of multisig address.
I also added another issue in polkadot-sdk because I am not sure if this issue can be resolved on the application level or need to update the pallet multisig: paritytech/polkadot-sdk#3618
/// File location: https://github.dev/polkadot-js/ui/tree/master/packages/ui-keyring/srcpublicaddMultisig(addresses: (string|Uint8Array)[],threshold: bigint|BN|number,meta: KeyringPair$Meta={}): CreateResult{letaddress=createKeyMulti(addresses,threshold);// For Ethereum chains, the first 20 bytes of the hash indicates the actual address// Testcases via creation and on-chain events:// - input: 0x7a1671a0224c8927b08f978027d586ab6868de0d31bb5bc956b625ced2ab18c4// - output: 0x7a1671a0224c8927b08f978027d586ab6868de0dif(this.isEthereum){address=address.slice(0,20);}// we could use `sortAddresses`, but rather use internal encode/decode so we are 100%constwho=u8aSorted(addresses.map((who)=>this.decodeAddress(who))).map((who)=>this.encodeAddress(who));returnthis.addExternal(address,objectSpread<KeyringPair$Meta>({},meta,{isMultisig: true,threshold: bnToBn(threshold).toNumber(), who }));}
Please tell us about your environment:
Version: Unknown
Environment:
Node.js
Browser
Other (limited support for other environments)
Language:
JavaScript
TypeScript (include tsc --version)
Other
The text was updated successfully, but these errors were encountered:
My team stores fund on multisigs on Polkadot and use this feature frequently. And I notice there is an odd design in the deterministic multisig private key generation. Because the generated key is deterministic and is a computation outcome of the provided signatories and threshold, one set of signatories and theshold could not own more than one multisigs due to the mentioned mechanism.
Due to my understanding of the
addMultisig
method, by receiving the meta information which are list of signatories and theshold, new address can be generated. Wonder if we can add another parameter in the meta object calledID
ornonce
which is sequential or random. Hence, same set of parameters can produce different value of multisig address.I also added another issue in
polkadot-sdk
because I am not sure if this issue can be resolved on the application level or need to update the pallet multisig: paritytech/polkadot-sdk#3618Version: Unknown
Environment:
Language:
The text was updated successfully, but these errors were encountered: