Skip to content
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

Verify the final release is conforming to acceptance criteria #112

Closed
15 of 29 tasks
troggy opened this issue Jun 13, 2019 · 6 comments
Closed
15 of 29 tasks

Verify the final release is conforming to acceptance criteria #112

troggy opened this issue Jun 13, 2019 · 6 comments
Assignees
Labels

Comments

@troggy
Copy link
Member

troggy commented Jun 13, 2019

Bounty

Prerequisites

Scope

  • verify all the points in the criteria list below. Comment if something could not be reasonably verified

Deliverables

  • message in #ops channel that you verified everything and release is good to go on mainnet

Gain for the project

  • ensure the release is good to go on mainnet

Publicly visible delivery

🤷‍♂️

Roles

bounty gardener: @troggy / 15%
bounty worker: @troggy + @johannbarbie / 85%
bounty reviewer: reviewed by reality

Acceptance Criteria

Original: https://hackmd.io/5S9i6bhMTfa2b5zA0IBcAQ?both

integration tests

  • run => pass

tendermint upgrade 0.3 / lotion transaction encoding

  • smoke test - deposit / transfer / exit of ERC20 and ERC721
  • load test Excluded for now

plasma exits

  • run valid exit of utxo (output pos 0) => tokens received, get stake back
  • run valid exit of utxo (output pos 1) => tokens received, get stake back
  • run valid exit of utxo (output pos 15) => tokens received, get stake back
  • run invalid exit, challenge exit => exit canceled, get stake back

getUnspents to require second argument

@troggy: It is still possible to call getUnspents without second argument, will be working like before

  • call getUnspents() without second argument
  • check following application to not be affected:
    • dungeon riches
    • bridge-ui
    • sniper riffle
    • tx-store
    • burner-wallet

shadow validator

  • run 2 validators, stop active one, activate passive one (instructions), network should continue.
    Not doing shadow validator anymore (it is dangerous — we had the data corruption + you can get slashed)

Nonfungible Storage Token

  • register ERC1948 => token receives color
  • deposit NST => NST output should appear in getUnspents()
  • modify data of NST => check that data field in output updated
  • exit NST => check that data field in token corresponds with set data

Distributed Breeding

  • register ERC1949 => token receives color
  • deposit queen => queen output should appear in getUnspents()
  • send queen into breeding condition => transfer success
  • breed => worker created
  • exit workers => worker minted in rootchain contract
  • exit queen => breed counter is updated to latest breedcount on sidechain
  • negative tests:
    • try to exit worker after queen exited => should fail, but not block queue
    • deposit worker into breeding condition => breed tx should fail
    • try to convert worker to queen (plasma and root chain contract should prevent this)
    • try to call breeding condition with queen that doesn't belong to condition => should fail
  • deposit another queen, try to exit worker from previous queen => worker can exit
@troggy troggy changed the title Verify the final release to conform acceptance criteria Verify the final release is conforming to acceptance criteria Jun 13, 2019
@troggy troggy transferred this issue from leapdao/leap-node Jun 13, 2019
@troggy troggy self-assigned this Jun 25, 2019
@troggy
Copy link
Member Author

troggy commented Jun 27, 2019

NFT for testing: 0xED2903d13584Deff039ECd59Bb1beC7508f7513b. Owned by Rinkeby multisig
ABI (ERC721Full):

[{"constant":true,"inputs":[{"name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x01ffc9a7"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x06fdde03"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x081812fc"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x095ea7b3"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x18160ddd"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x23b872dd"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x2f745c59"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x42842e0e"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x4f6ccce7"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x6352211e"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x70a08231"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function","signature":"0x95d89b41"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x983b2d56"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x98650275"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0xa22cb465"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function","signature":"0xaa271e1a"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0xb88d4fde"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function","signature":"0xc87b56dd"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function","signature":"0xe985e9c5"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor","signature":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event","signature":"0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event","signature":"0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event","signature":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event","signature":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event","signature":"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_size","type":"uint32"},{"name":"_isGlowing","type":"bool"},{"name":"_color","type":"uint8"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x9235bddd"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function","signature":"0x42966c68"}]

@troggy
Copy link
Member Author

troggy commented Jun 27, 2019

verified deposit / transfer / exit of ERC20 and ERC721. 8 NFT-related issues found in Bridge UI, yet on the network side everything is good 😂

@johannbarbie
Copy link
Member

johannbarbie commented Jun 28, 2019

@troggy
Copy link
Member Author

troggy commented Jul 5, 2019

the point of these tests is not clear:

  - [ ] run valid exit of utxo (output pos 0) => tokens received, get stake back
  - [ ] run valid exit of utxo (output pos 1) => tokens received, get stake back
  - [ ] run valid exit of utxo (output pos 15)  => tokens received, get stake back

@troggy
Copy link
Member Author

troggy commented Jul 5, 2019

verified plasma exits

The only issue is that Bridge UI watchtower complains about invalid exit even after it was challenged
leapdao/bridge-ui#234

@troggy
Copy link
Member Author

troggy commented Jul 8, 2019

partially done, the rest is unfeasible to check according to @johannbarbie . Closing

@troggy troggy closed this as completed Jul 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants