Skip to content
This repository has been archived by the owner on Dec 13, 2019. It is now read-only.

[node] Duplicate versioned states are stored on propose app install #2497

Open
rhlsthrm opened this issue Oct 4, 2019 · 0 comments
Open

Comments

@rhlsthrm
Copy link
Collaborator

rhlsthrm commented Oct 4, 2019

store.set(...) is called twice at the exact same time with the same version number on a propose install. Here are two states that were attempted to store:

State 1:

{
  "path": "store/xpub6E2dkMSW3ouWmYeSqM5sSNvYSt3XtEdSVxEjLP5itYdSCsaURwESLiPCqRQ7c71a1Fkqja8f4eiPiejLNxdin9fwndBuW1t9eNazyADxQmC/channel/0x5c1A218A1A48fD08eb854F31F740ECc473986fdc",
  "value": {
    "multisigAddress": "0x5c1A218A1A48fD08eb854F31F740ECc473986fdc",
    "userNeuteredExtendedKeys": [
      "xpub6E3tjd9js7QMrBtYo7f157D7MwauL6MWdLzKekFaRBb3bvaQnUPjHKJcdNhiqSjhmwa6TcTjV1wSDTgvz52To2ZjhGMiQFbYie2N2LZpNx6",
      "xpub6E2dkMSW3ouWmYeSqM5sSNvYSt3XtEdSVxEjLP5itYdSCsaURwESLiPCqRQ7c71a1Fkqja8f4eiPiejLNxdin9fwndBuW1t9eNazyADxQmC"
    ],
    "proposedAppInstances": [],
    "appInstances": [],
    "freeBalanceAppInstance": {
      "participants": [
        "0x656Bc3ab56e050e5E7C202770733ccd42E255987",
        "0xF80fd6F5eF91230805508bB28d75248024E50F6F"
      ],
      "defaultTimeout": 172800,
      "appInterface": {
        "addr": "0x8f0483125FCb9aaAEFA9209D8E9d7b9C8B9Fb90F",
        "stateEncoding": "\n  tuple(\n    address[] tokenAddresses,\n    tuple(\n      address to,\n      uint256 amount\n    )[][] balances,\n    bytes32[] activeApps\n  )\n"
      },
      "isVirtualApp": false,
      "appSeqNo": 0,
      "latestState": {
        "activeApps": [],
        "tokenAddresses": [
          "0x0000000000000000000000000000000000000000",
          "0xeec918d74c746167564401103096D45BbD494B74"
        ],
        "balances": [
          [
            {
              "to": "0x656Bc3ab56e050e5E7C202770733ccd42E255987",
              "amount": { "_hex": "0x98c445ad578000" }
            },
            { "to": "0xF80fd6F5eF91230805508bB28d75248024E50F6F", "amount": { "_hex": "0x00" } }
          ],
          [
            {
              "to": "0xF80fd6F5eF91230805508bB28d75248024E50F6F",
              "amount": { "_hex": "0xf2e2d02e7d094000" }
            },
            { "to": "0x656Bc3ab56e050e5E7C202770733ccd42E255987", "amount": { "_hex": "0x00" } }
          ]
        ]
      },
      "latestVersionNumber": 8,
      "latestTimeout": 172800,
      "outcomeType": "MULTI_ASSET_MULTI_PARTY_COIN_TRANSFER",
      "identityHash": "0x8bae1872a10576a2d4d0fb54adba4c022670276dadb9d49c670958556520735a"
    },
    "monotonicNumProposedApps": 1,
    "singleAssetTwoPartyIntermediaryAgreements": [],
    "createdAt": 1570193690330
  }
}

State 2:

{
  "path": "store/xpub6E2dkMSW3ouWmYeSqM5sSNvYSt3XtEdSVxEjLP5itYdSCsaURwESLiPCqRQ7c71a1Fkqja8f4eiPiejLNxdin9fwndBuW1t9eNazyADxQmC/channel/0x5c1A218A1A48fD08eb854F31F740ECc473986fdc",
  "value": {
    "multisigAddress": "0x5c1A218A1A48fD08eb854F31F740ECc473986fdc",
    "userNeuteredExtendedKeys": [
      "xpub6E3tjd9js7QMrBtYo7f157D7MwauL6MWdLzKekFaRBb3bvaQnUPjHKJcdNhiqSjhmwa6TcTjV1wSDTgvz52To2ZjhGMiQFbYie2N2LZpNx6",
      "xpub6E2dkMSW3ouWmYeSqM5sSNvYSt3XtEdSVxEjLP5itYdSCsaURwESLiPCqRQ7c71a1Fkqja8f4eiPiejLNxdin9fwndBuW1t9eNazyADxQmC"
    ],
    "proposedAppInstances": [
      [
        "0xdb0c2cfcef7f2a7ed5756feb6b23d5d6916200a0b9d3deee7c7af1e7050f224f",
        {
          "identityHash": "0xdb0c2cfcef7f2a7ed5756feb6b23d5d6916200a0b9d3deee7c7af1e7050f224f",
          "appDefinition": "0xdDA6327139485221633A1FcD65f4aC932E60A2e1",
          "abiEncodings": {
            "actionEncoding": null,
            "stateEncoding": "\n          tuple(\n            \n  tuple(address to, uint256 amount)[][]\n coinTransfers\n          )"
          },
          "initiatorDeposit": { "_hex": "0x98c445ad578000" },
          "initiatorDepositTokenAddress": "0x0000000000000000000000000000000000000000",
          "responderDeposit": { "_hex": "0x681bad29f3214000" },
          "responderDepositTokenAddress": "0xeec918d74c746167564401103096D45BbD494B74",
          "initialState": {
            "coinTransfers": [
              [
                {
                  "amount": { "_hex": "0x98c445ad578000" },
                  "to": "0x656Bc3ab56e050e5E7C202770733ccd42E255987"
                }
              ],
              [
                {
                  "amount": { "_hex": "0x681bad29f3214000" },
                  "to": "0xF80fd6F5eF91230805508bB28d75248024E50F6F"
                }
              ]
            ]
          },
          "appSeqNo": 1,
          "timeout": { "_hex": "0x00" },
          "proposedByIdentifier": "xpub6E2dkMSW3ouWmYeSqM5sSNvYSt3XtEdSVxEjLP5itYdSCsaURwESLiPCqRQ7c71a1Fkqja8f4eiPiejLNxdin9fwndBuW1t9eNazyADxQmC",
          "proposedToIdentifier": "xpub6E3tjd9js7QMrBtYo7f157D7MwauL6MWdLzKekFaRBb3bvaQnUPjHKJcdNhiqSjhmwa6TcTjV1wSDTgvz52To2ZjhGMiQFbYie2N2LZpNx6",
          "outcomeType": "MULTI_ASSET_MULTI_PARTY_COIN_TRANSFER"
        }
      ]
    ],
    "appInstances": [],
    "freeBalanceAppInstance": {
      "participants": [
        "0x656Bc3ab56e050e5E7C202770733ccd42E255987",
        "0xF80fd6F5eF91230805508bB28d75248024E50F6F"
      ],
      "defaultTimeout": 172800,
      "appInterface": {
        "addr": "0x8f0483125FCb9aaAEFA9209D8E9d7b9C8B9Fb90F",
        "stateEncoding": "\n  tuple(\n    address[] tokenAddresses,\n    tuple(\n      address to,\n      uint256 amount\n    )[][] balances,\n    bytes32[] activeApps\n  )\n"
      },
      "isVirtualApp": false,
      "appSeqNo": 0,
      "latestState": {
        "activeApps": [],
        "tokenAddresses": [
          "0x0000000000000000000000000000000000000000",
          "0xeec918d74c746167564401103096D45BbD494B74"
        ],
        "balances": [
          [
            {
              "to": "0x656Bc3ab56e050e5E7C202770733ccd42E255987",
              "amount": { "_hex": "0x98c445ad578000" }
            },
            { "to": "0xF80fd6F5eF91230805508bB28d75248024E50F6F", "amount": { "_hex": "0x00" } }
          ],
          [
            {
              "to": "0xF80fd6F5eF91230805508bB28d75248024E50F6F",
              "amount": { "_hex": "0xf2e2d02e7d094000" }
            },
            { "to": "0x656Bc3ab56e050e5E7C202770733ccd42E255987", "amount": { "_hex": "0x00" } }
          ]
        ]
      },
      "latestVersionNumber": 8,
      "latestTimeout": 172800,
      "outcomeType": "MULTI_ASSET_MULTI_PARTY_COIN_TRANSFER",
      "identityHash": "0x8bae1872a10576a2d4d0fb54adba4c022670276dadb9d49c670958556520735a"
    },
    "monotonicNumProposedApps": 2,
    "singleAssetTwoPartyIntermediaryAgreements": [],
    "createdAt": 1570193690330
  }
}
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant