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
{{ message }}
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.
When creating a multi-sig wallet (on Ropsten) with a 2-of-3 signing policy within the Dapp the variable m_numOwners should represent the number of owner accounts (3 in this case).
Current Behavior
m_numOwners is incorrectly set to 4 (instead of 3). After evaluating the contract code I assume that the error originates in a _owners array of the wrong length. My assumption is that the creating account gets added twice (as it also appears twice in some wallets) but I haven't verified this. However adding the wallet in Parity shows the creating account twice under "owners" (don't know if that is any indication).
Screenshot
Steps to Reproduce
Connect Parity or Mist with Ropsten Testnet
Open wallet.ethereum.org
Create multi-sig wallet (e.g. 2-of-3)
Inspect wallet using ropsten.etherscan.io ('read smart contract') or any other tool
I tried to debug some more myself but ran into several problems. E.g. currently two versions of the wallet contract are maintained in this repo and in the dapp-bin repo and it is not immediately clear why and which one is used.
The text was updated successfully, but these errors were encountered:
Playing with the contract source code gave me some interesting insights. When creating a multi-sig wallet that is supposed to be owned by A, B and C the following results in correct getOwner, isOwner and m_numOwners return values:
Deploying the contract (from A) and
passing the constructor only B and C (not A) as _owners.
This leads me to believe that the standard multi-sig smart contract actually adds the deploying Ethereum account as owner at index 0 and starts adding the _owners array at index 1. As far as I can see this is not properly documented and Ethereum Wallet/Mist implement it incorrectly. Mist actually forbids creating multi-sig wallets where the deploying account is not explicitly named in _owners.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Expected Behavior
When creating a multi-sig wallet (on Ropsten) with a 2-of-3 signing policy within the Dapp the variable
m_numOwners
should represent the number of owner accounts (3 in this case).Current Behavior
m_numOwners
is incorrectly set to 4 (instead of 3). After evaluating the contract code I assume that the error originates in a_owners
array of the wrong length. My assumption is that the creating account gets added twice (as it also appears twice in some wallets) but I haven't verified this. However adding the wallet in Parity shows the creating account twice under "owners" (don't know if that is any indication).Screenshot
Steps to Reproduce
A contract that is affected is also deployed at 0x6f6Ae72d72420FF51f7A75c9cd1A1f69e40e1043 on Ropsten.
More Context
I tried to debug some more myself but ran into several problems. E.g. currently two versions of the wallet contract are maintained in this repo and in the
dapp-bin
repo and it is not immediately clear why and which one is used.The text was updated successfully, but these errors were encountered: