okTurtles / group-income

A decentralized and private (end-to-end encrypted) financial safety net for you and your friends.
https://groupincome.org
GNU Affero General Public License v3.0
331 stars 44 forks source link

Some errors and warnings in e2e-protocol branch #1720

Closed Silver-IT closed 9 months ago

Silver-IT commented 1 year ago

Problem

Solution

Create a branch from e2e-protocol and fix them

Silver-IT commented 1 year ago

Additional Issue

ChelErrorSignatureError: Signing Key ID has been revoked and now new key exists by the same name (/***)`

Steps to reproduce (Using Multi-Container Addon in Firefox)

Silver-IT commented 1 year ago

Additional Issue

ChelErrorUnexpected during process foraefrom *** to 'gi.contracts/chatroom': Key *** is unauthorized or expired for the current contract.

Steps to reproduce (Using Multi-Container Addon in Firefox)

image

Silver-IT commented 1 year ago

Another Issue Can not leave chatroom which **u2** is already part of

Steps to reproduce

Silver-IT commented 1 year ago

Another Issue image

Steps to reproduce

Weird thing is that sometimes got the above screenshot, and sometimes got one of the following screens with the same steps. image image

Silver-IT commented 1 year ago

Another issue image

Steps to reproduce

Silver-IT commented 1 year ago

Another issue

When users open the invite link, they always get the initial invite state. I guess because they can't sync the group actions before get joined. As a result, unlimited number of users can join using the public invite link and also unique invite link as well.

Silver-IT commented 1 year ago

Another issue

Steps to reproduce

image image

Silver-IT commented 1 year ago

Another issue

Steps to reproduce

image

corrideat commented 1 year ago

https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769662957 has been fixed https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769722388 no longer gives a login error (seeing the dashboard after being removed and duplicate proposals wasn't addressed) seeing the dashboard has been fixed https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769730894 has been fixed https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769747469 could not be reproduced (note:re the is an unrelated issue when re-joining, which presents the dashboard to users that haven't fully joined, similar to what happens if one is removed while logged out) https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769776760 could not be reproduced fixed https://github.com/okTurtles/group-income/issues/1720#issuecomment-1770125591 needs to tested and addressed (seems related to the issue of still seeing the dashboard after being removed) Appears fixed

Silver-IT commented 1 year ago

I don't think we should fix this issue by removing throw new Error inside the if statement of the gi.contracts/chatroom/leave/process function.

If the user leaves the chatroom only once, the gi.contracts/chatroom/leave should be called only once. So I am reverting this change and try to test again.

cc: @corrideat, @taoeffect

Silver-IT commented 1 year ago

@corrideat, I don't think this issue happens only in e2e-protocol branch. Having checked the login, I guess it would happen in master branch either. I will fix it in this branch. Please do not care about it.

taoeffect commented 1 year ago

@corrideat, I don't think https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769662957 happens only in e2e-protocol branch

I'm not sure... that seems related to #1645, which I've reassigned to @corrideat because it's related to low-level details he's working on.

taoeffect commented 1 year ago

@corrideat Found another issue.

Follow the steps in issue #1760, and then one more step:

u3 is shown the group dashboard when it shouldn't be.

taoeffect commented 1 year ago

Another issue

Copied from: https://github.com/okTurtles/group-income/issues/1727#issuecomment-1773260874

After creating a group, I can no longer see the dashboard. I get taken to http://localhost:3000/app/pending-approval every time.

This happens after the web socket breaks temporarily (the white bar appears at the top) and I create a group (seems to be a sporadic Firefox issue that breaks the web socket). When this happens then I get into this situation, and even refreshing the page and manually going to http://localhost:3000/app/dashboard doesn't fix it.

Screenshot 2023-10-20 at 12 15 21 PM

And here's the state:

'{
  "currentGroupId": "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7",
  "currentChatRoomIDs": {},
  "chatRoomScrollPosition": {},
  "chatRoomUnread": {},
  "chatNotificationSettings": {},
  "contracts": {
    "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu": {
      "type": "gi.contracts/identity",
      "HEAD": "21XWnNWbs61DztQbNMHoEdsraVYRRvoxTkxfm1zqDbTRGLh6Tx",
      "height": 5
    },
    "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7": {
      "type": "gi.contracts/group",
      "HEAD": "21XWnNUNQ2p9ao2DCn5vJdRFCyL6z2PNrLfwMQq51UvAYVBjqE",
      "height": 2
    },
    "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6": {
      "type": "gi.contracts/chatroom",
      "HEAD": "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6",
      "height": 0
    }
  },
  "pending": [],
  "loggedIn": {
    "identityContractID": "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu",
    "encryptionParams": {
      "stateEncryptionKeyId": "21XWnNRouioAzHnZZiz8tLKK8Fd19fSCZTXJMB7wEaLeCbYVtE",
      "salt": "Y6ntushLlFhlbCyh08isw93u",
      "encryptedStateEncryptionKey": "8wnB1Em7VGBRtK1ixuaZ1PdfUrXlBwrtshk9MU3LWSf4bbSxvU1088q+mE6mzIjYFRvTl2uLAR82M/srGUq3jdlEWi2LxEWlJ2qWlMZ2DaidTZCYPk2dzt+mNnbmU/qQr3D3u/RFc6E8/lbenNHaZt/v18bHO5wSxPxjrGxaNcK5dahZ0tgMHosHY6guAvmF9+kZ2q+2Qo+nAQ=="
    },
    "username": "u1"
  },
  "namespaceLookups": {
    "u1": "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu"
  },
  "periodicNotificationAlreadyFiredMap": {},
  "notifications": [],
  "settings": {
    "appLogsFilter": [
      "error",
      "warn",
      "info",
      "debug",
      "log"
    ],
    "fontSize": 16,
    "increasedContrast": false,
    "notificationEnabled": true,
    "reducedMotion": false,
    "theme": "system",
    "themeColor": "dark"
  },
  "gi.contracts/chatroom": {},
  "gi.contracts/group": {},
  "gi.contracts/identity": {},
  "secretKeys": {
    "21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN": "[\\"edwards25519sha512batch\\",null,\\"8Op6m89JiCx6zjuDmY3PCddX8qnPSiKDPjVJU5BV05JtIOO1Dx+KljXg+BAcEd0vo1mfhzLzsSo+FOGaZqFCPw==\\"]",
    "21XWnNXftiQKokF18FDMiBiJRbjaFEXB1XQKkDXKaoXgGmCdv8": "[\\"curve25519xsalsa20poly1305\\",null,\\"YX335UmSYVV3Ltg1bftDayiEPjzqTiPfg3IZUblm1FU=\\"]",
    "21XWnNXJ9zuH9VpypkCiLJFJACQcgZWP5seA8hf93jnq55DjBy": "[\\"curve25519xsalsa20poly1305\\",null,\\"imXEkqGcRTex/EZ6hqbffFlEh9x4F5pFqoll9fXm1fI=\\"]",
    "21XWnNWJVKjwVkK491BQBhjwVXnovtE99XsT3HtKDrAkySZSU3": "[\\"edwards25519sha512batch\\",null,\\"Y5WHU/YNBQr+GlltaIJDWk8VvNuAG0ZAGiP3gvPe/NdYiuY4yM/dZxEAKdTV25K6AnPXWx4bRAAtHUefkzj8bQ==\\"]",
    "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf": "[\\"curve25519xsalsa20poly1305\\",null,\\"JPB7txGBsosoint2AHrp/BHmN0ygmqA6DH2wD5oQ8ws=\\"]",
    "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM": "[\\"edwards25519sha512batch\\",null,\\"q7EznA7DAJEwX+JYUp7FUDjuo0p/mOxb7f0H/qvfTVzUhj6bML5QsA+iGeXsRIGYO/f15RheQGWO+gybSJIeHg==\\"]",
    "21XWnNMzXoE9iyaDAiE7pSpxaaXbi3GmvMbvkQqhVg25ix53yd": "[\\"edwards25519sha512batch\\",null,\\"opCJ70STaQfK5MhNVRf2f1glQ/QnBYPYcylrlxk3pjFkvYkG4CwYedXEFHjkMc/u+33oDVMPna9kV1G8qPtoQQ==\\"]"
  },
  "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu": {
    "_vm": {
      "type": "gi.contracts/identity",
      "authorizedKeys": {
        "21XWnNTcCHPcNSPKyKgpkXR7UiHp4UDNYiemNKrWt3yW8psDce": {
          "id": "21XWnNTcCHPcNSPKyKgpkXR7UiHp4UDNYiemNKrWt3yW8psDce",
          "name": "ipk",
          "purpose": [
            "sig"
          ],
          "ringLevel": 0,
          "permissions": "*",
          "allowedActions": "*",
          "meta": {
            "private": {
              "transient": true
            }
          },
          "data": "[\\"edwards25519sha512batch\\",\\"DOxbLiUIdS9zoSmY5oDj6Rm2BF+kinRy48t9dFCwixg=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNY9sdr6wN5ZizuQZTWzKoc8qroUUcgEmZ4UefLUijWmjQ": {
          "id": "21XWnNY9sdr6wN5ZizuQZTWzKoc8qroUUcgEmZ4UefLUijWmjQ",
          "name": "iek",
          "purpose": [
            "enc"
          ],
          "ringLevel": 0,
          "permissions": [
            "gi.contracts/identity/keymeta"
          ],
          "meta": {
            "private": {
              "transient": true
            }
          },
          "data": "[\\"curve25519xsalsa20poly1305\\",\\"UU4ihaOUVVO6EHNJRuKy4kHOTbENvDjZ7kY02Vmi4mo=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN": {
          "id": "21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN",
          "name": "csk",
          "purpose": [
            "sig"
          ],
          "ringLevel": 1,
          "permissions": [
            "ka",
            "kd",
            "au",
            "ae",
            "a",
            "ca",
            "cd",
            "ks",
            "ku",
            "ae#inner"
          ],
          "allowedActions": "*",
          "meta": {
            "private": {
              "content": [
                "21XWnNY9sdr6wN5ZizuQZTWzKoc8qroUUcgEmZ4UefLUijWmjQ",
                "Nw6TKXDrCIG0qnbftaKOFS2Ni7PK3PlbXhsZ87lNYhj0YcN1hUr9C7ljDw6YrDAXw6oFlnFTc9Y35tkZS+TT5Ss5BREeHCSnZnQun+rczxTBLGG5bVL/i/ci3kg2a5AnfOfT9epDh/uDBjS4db/gvNJMfrj3xUjG73B5VUfQp0Yn/WjtQxzPhSUiqO4VZBEoczhbWolF9LGoPX27G3V0L7tjPD27V59dvCOCiR+TR+ALJkKlCs6CayCvCShVovMzDTpOG3qSGLx0"
              ]
            }
          },
          "data": "[\\"edwards25519sha512batch\\",\\"bSDjtQ8fipY14PgQHBHdL6NZn4cy87EqPhThmmahQj8=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNXftiQKokF18FDMiBiJRbjaFEXB1XQKkDXKaoXgGmCdv8": {
          "id": "21XWnNXftiQKokF18FDMiBiJRbjaFEXB1XQKkDXKaoXgGmCdv8",
          "name": "cek",
          "purpose": [
            "enc"
          ],
          "ringLevel": 1,
          "permissions": [
            "ae",
            "ka",
            "kd",
            "kr",
            "krs",
            "ks",
            "ku"
          ],
          "allowedActions": "*",
          "meta": {
            "private": {
              "content": [
                "21XWnNY9sdr6wN5ZizuQZTWzKoc8qroUUcgEmZ4UefLUijWmjQ",
                "/ISm2P9eotYJ+FOzLZzf2ezlPJm8TRwJ3VH2ziwm4lcxu56QdOivkS3WFBYsMV0mB+ZDjDmUi+YYLQ3ncZ951sjGU/AZSOsSukDXgSHZ18eCBcRdZDVYgxDGJ29yP4Fddgmjn3BdYbtJinbR337gNcH7weHeX4zopOe0B+mAoHXfnsgM0NIBHqv5xn6LnKBCjDFXiJUXodKMn+BTGK5Jxw=="
              ]
            }
          },
          "data": "[\\"curve25519xsalsa20poly1305\\",\\"1hed14Y/1518T2+rlwGt58fq6z7K0LqD4/JAbWq2BAs=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNXJ9zuH9VpypkCiLJFJACQcgZWP5seA8hf93jnq55DjBy": {
          "id": "21XWnNXJ9zuH9VpypkCiLJFJACQcgZWP5seA8hf93jnq55DjBy",
          "name": "pek",
          "purpose": [
            "enc"
          ],
          "ringLevel": 2,
          "permissions": [
            "ae"
          ],
          "allowedActions": [
            "gi.actions/identity/setAttributes"
          ],
          "meta": {
            "private": {
              "content": [
                "21XWnNXftiQKokF18FDMiBiJRbjaFEXB1XQKkDXKaoXgGmCdv8",
                "CPqwQ/Z8RKxvdDTjha2DXLLPTDdUWeoUnl3/qAAnTnIMRG2rJMzeQ5czeax8bEKKwLrsD43ptigs4XRFUdRtlAOHxUSysLBrL9AytrTbtuUpRouIsIh7DO02oZ/I34p6Ue8rxClkJX/MXvMjO3UqHDUUoyCDPSUC/o1gsHmjnjbmU2dmAmyv3mQsaxyRxbQRADoUM9JFJMRF1Izh+zUKMQ=="
              ]
            }
          },
          "data": "[\\"curve25519xsalsa20poly1305\\",\\"ieUYSnb/VlP/1CQRbm5D4zwpqCmnvIugaq82b+GJuHE=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNMzXoE9iyaDAiE7pSpxaaXbi3GmvMbvkQqhVg25ix53yd": {
          "id": "21XWnNMzXoE9iyaDAiE7pSpxaaXbi3GmvMbvkQqhVg25ix53yd",
          "name": "#krrk-21XWnNMzXoE9iyaDAiE7pSpxaaXbi3GmvMbvkQqhVg25ix53yd",
          "purpose": [
            "sig"
          ],
          "ringLevel": 9007199254740991,
          "permissions": [
            "ae",
            "ks"
          ],
          "allowedActions": [
            "gi.contracts/identity/joinDirectMessage"
          ],
          "meta": {
            "private": {
              "content": [
                "21XWnNXftiQKokF18FDMiBiJRbjaFEXB1XQKkDXKaoXgGmCdv8",
                "5CMfaYIoCsTuOoGOofaprovl+Pl6ZUdLcPpTXXD99T3mWsi+8wMzWIb20ar0mZl4HhTN0Su1riJJp2g0LDSaVgUpKf7lewCP26+4Owf4OseetMTG5K6iC0MxmufzUawtz406a330qPvWcPTOvdZZOEqVXJgxuMLKI/NF2FGZ2iv150TxJfNr94UcLX4VUlN0wfcNsPQYAuOlnR3VWzDADomGJROFAKd7rh1P+8aMSUQ0EiCeLZsUM6u1oORmFiRkR+7i6v18Wwag"
              ],
              "shareable": false
            },
            "keyRequest": {
              "contractID": "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7"
            }
          },
          "data": "[\\"edwards25519sha512batch\\",\\"ZL2JBuAsGHnVxBR45DHP7vt96A1TD52vZFdRvKj7aEE=\\",null]",
          "_notBeforeHeight": 5
        }
      }
    },
    "settings": {},
    "attributes": {
      "username": "u1",
      "email": "u1@asdf.com",
      "picture": "http://localhost:3000/file/21XWnNPVhSoxUCCLMUUct48aeR1rBYjs7uz7Yea5SHckfWRYqw?type=image%2Fpng"
    },
    "chatRooms": {},
    "loginState": {
      "groupIds": [
        "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7"
      ]
    },
    "_volatile": {
      "watch": [
        [
          "csk",
          "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6"
        ]
      ]
    }
  },
  "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7": {
    "_vm": {
      "type": "gi.contracts/group",
      "authorizedKeys": {
        "21XWnNWJVKjwVkK491BQBhjwVXnovtE99XsT3HtKDrAkySZSU3": {
          "id": "21XWnNWJVKjwVkK491BQBhjwVXnovtE99XsT3HtKDrAkySZSU3",
          "name": "csk",
          "purpose": [
            "sig"
          ],
          "ringLevel": 1,
          "permissions": "*",
          "allowedActions": "*",
          "meta": {
            "private": {
              "content": [
                "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
                "Y/ZP75hOQOcRWRWTiNTbniS2Z0SW/Su3a4ezvO0KVEhb5EFfwRZebfoZXFMzfxBcb7DR4iZwKxVenp3SeIRF9awKMA4//2x40HjED2VGm1CN0kv7zyfSEimqbDptjrMTzuGY14xLyXlG+/Z7zAE7Voljy7yZmmOWWIAo3yV38JPXAexwYH1wSPpbqt5R6+VZwt37V6gYAnizELwUulklp07haK4t2UZHd2rqEKQDej50deGJ2BjRsVEF9uTFm39A715KdijRImky"
              ],
              "shareable": true
            }
          },
          "data": "[\\"edwards25519sha512batch\\",\\"WIrmOMjP3WcRACnU1duSugJz11seG0QALR1Hn5M4/G0=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf": {
          "id": "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
          "name": "cek",
          "purpose": [
            "enc"
          ],
          "ringLevel": 1,
          "permissions": "*",
          "allowedActions": "*",
          "meta": {
            "private": {
              "content": [
                "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
                "Gugn/rr81Ite505s2aM/sY4Gy0EIiwgWKUg55qKfV22/Z8MnEEkO3faKWyJs1Zb9AadQKxL1rNvJCy3MrBJe3DkIrf0i2HVpiDOg0RJQhlhDLzT7irbkwFwogbx+36ojBCcxxoDOgQtleDYXFHuH92vOA7WRsBp2vicltR7a4+GqWfWwHQ/EvOWabWkraSiTImSkkLzwN6wMZjJ8OHvigA=="
              ],
              "shareable": true
            }
          },
          "data": "[\\"curve25519xsalsa20poly1305\\",\\"0UdpfODLrZL2x+RKmSfN5M86BuP96IFiRCsIi32tOkA=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM": {
          "id": "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM",
          "name": "#inviteKey-21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM",
          "purpose": [
            "sig"
          ],
          "ringLevel": 9007199254740991,
          "permissions": [
            "kr"
          ],
          "meta": {
            "quantity": 60,
            "expires": 1700421311093,
            "private": {
              "content": [
                "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
                "GfdT8SAXhH8teGElrwdnwLG/Ji7VzPREueQrYAHW1EtDaDzn+gtCLZwqp/BGzqbhoRSxPnUJVxv4GDLr+HHYsGjCLgQfkkMCnbZ08HctKJOtKuGAzmY9u6Dlwxc/q8Q5q8s732BhvY8StlZnBtalbEluLugdg9tXprzhZRoqBm+NiAePb/8TBh11RymkV4kFtMOoutSwdSp/dYSs99H6aEM3HzLX0hfhlB0hjaKBinwvZzLiJFwux0qX+3E3+EiKkokSqC1kJ0Cf"
              ]
            }
          },
          "data": "[\\"edwards25519sha512batch\\",\\"1IY+mzC+ULAPohnl7ESBmDv39eUYXkBljvoMm0iSHh4=\\",null]",
          "_notBeforeHeight": 0
        }
      },
      "invites": {
        "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM": {
          "status": "valid",
          "initialQuantity": 60,
          "quantity": 60,
          "expires": 1700421311093,
          "inviteSecret": "[\\"edwards25519sha512batch\\",null,\\"q7EznA7DAJEwX+JYUp7FUDjuo0p/mOxb7f0H/qvfTVzUhj6bML5QsA+iGeXsRIGYO/f15RheQGWO+gybSJIeHg==\\"]",
          "responses": []
        }
      }
    },
    "payments": {},
    "paymentsByPeriod": {
      "2023-09-23T00:00:00.000Z": {
        "start": "2023-09-23T00:00:00.000Z",
        "end": "2023-10-23T00:00:00.000Z",
        "initialCurrency": "USD",
        "mincomeExchangeRate": 1,
        "paymentsFrom": {},
        "lastAdjustedDistribution": null,
        "haveNeedsSnapshot": null
      }
    },
    "thankYousFrom": {},
    "invites": {
      "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM": {
        "inviteKeyId": "21XWnNWAFZEfxwkTJSZqw5hPtPFYtAhyom5H6UFFLzku3L66wM",
        "creator": "invite-initial-creator"
      }
    },
    "proposals": {},
    "settings": {
      "groupCreator": "u1",
      "distributionPeriodLength": 2592000000,
      "inviteExpiryOnboarding": 30,
      "inviteExpiryProposal": 7,
      "allowPublicChannels": false,
      "groupName": "Turtles",
      "groupPicture": "http://localhost:3000/file/21XWnNKCmSzrFpUwNyY4Rnn6r9GywUrRjxuQ9CVgGqrsH9rjXp?type=image%2Fpng",
      "sharedValues": "",
      "mincomeAmount": 1000,
      "mincomeCurrency": "USD",
      "distributionDate": "2023-10-23T00:00:00.000Z",
      "minimizeDistribution": true,
      "proposals": {
        "group-setting-change": {
          "rule": "percentage",
          "expires_ms": 1209600000,
          "ruleSettings": {
            "percentage": {
              "threshold": 0.66
            },
            "disagreement": {
              "threshold": 1
            }
          }
        },
        "invite-member": {
          "rule": "percentage",
          "expires_ms": 1209600000,
          "ruleSettings": {
            "percentage": {
              "threshold": 0.66
            },
            "disagreement": {
              "threshold": 1
            }
          }
        },
        "remove-member": {
          "rule": "percentage",
          "expires_ms": 1209600000,
          "ruleSettings": {
            "percentage": {
              "threshold": 0.66
            },
            "disagreement": {
              "threshold": 1
            }
          }
        },
        "proposal-setting-change": {
          "rule": "percentage",
          "expires_ms": 1209600000,
          "ruleSettings": {
            "percentage": {
              "threshold": 0.66
            },
            "disagreement": {
              "threshold": 1
            }
          }
        },
        "generic": {
          "rule": "percentage",
          "expires_ms": 1209600000,
          "ruleSettings": {
            "percentage": {
              "threshold": 0.66
            },
            "disagreement": {
              "threshold": 1
            }
          }
        }
      }
    },
    "streaks": {
      "lastStreakPeriod": null,
      "fullMonthlyPledges": 0,
      "fullMonthlySupport": 0,
      "onTimePayments": {},
      "missedPayments": {},
      "noVotes": {}
    },
    "profiles": {},
    "chatRooms": {},
    "totalPledgeAmount": 0,
    "_volatile": {
      "watch": [
        [
          "csk",
          "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6"
        ],
        [
          "cek",
          "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6"
        ]
      ],
      "pendingKeyRequests": [
        {
          "name": "#krrk-21XWnNMzXoE9iyaDAiE7pSpxaaXbi3GmvMbvkQqhVg25ix53yd"
        }
      ]
    }
  },
  "21XWnNW3PhL8j9yJrtpLdsTp9WAzrfsPBHcUanapiNem5hP6N6": {
    "_vm": {
      "type": "gi.contracts/chatroom",
      "authorizedKeys": {
        "21XWnNWJVKjwVkK491BQBhjwVXnovtE99XsT3HtKDrAkySZSU3": {
          "id": "21XWnNWJVKjwVkK491BQBhjwVXnovtE99XsT3HtKDrAkySZSU3",
          "name": "csk",
          "purpose": [
            "sig"
          ],
          "ringLevel": 1,
          "permissions": "*",
          "allowedActions": "*",
          "foreignKey": "sp:21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7?keyName=csk",
          "data": "[\\"edwards25519sha512batch\\",\\"WIrmOMjP3WcRACnU1duSugJz11seG0QALR1Hn5M4/G0=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf": {
          "id": "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
          "name": "cek",
          "purpose": [
            "enc"
          ],
          "ringLevel": 1,
          "permissions": [
            "ae"
          ],
          "allowedActions": "*",
          "foreignKey": "sp:21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7?keyName=cek",
          "data": "[\\"curve25519xsalsa20poly1305\\",\\"0UdpfODLrZL2x+RKmSfN5M86BuP96IFiRCsIi32tOkA=\\",null]",
          "_notBeforeHeight": 0
        },
        "21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN": {
          "foreignKey": "sp:21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu?keyName=csk",
          "id": "21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN",
          "data": "[\\"edwards25519sha512batch\\",\\"bSDjtQ8fipY14PgQHBHdL6NZn4cy87EqPhThmmahQj8=\\",null]",
          "permissions": [
            "ae#inner"
          ],
          "allowedActions": "*",
          "purpose": [
            "sig"
          ],
          "ringLevel": 9007199254740991,
          "name": "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu/21XWnNRpsSPfeiQPe7WXCbCbWvcFLXFtznP7uApmmWmP2beAkN",
          "_private": "21XWnNV5VAWvink8jVPihe6n83o7BoByN9hRyrRqCVBV2LGzAf",
          "_notBeforeHeight": 0
        }
      },
      "pendingWatch": {
        "21XWnNQLn1Ee3V2SzZ3togvUQaTzEAtJdH7bfHT1FYKfz6AwW7": [],
        "21XWnNS4BLi8rM2C1SEo56RDGPJQnuPkGuqYAe6vHR1abPykYu": []
      }
    }
  }
}'

Manually running sbp('chelonia/contract/sync', sbp('state/vuex/state').currentGroupId, {force:true}) fixes it.

gi_logs.json.zip

Silver-IT commented 1 year ago

@corrideat, I don't think https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769662957 happens only in e2e-protocol branch

I'm not sure... that seems related to #1645, which I've reassigned to @corrideat because it's related to low-level details he's working on.

Having checked in master branch, this issue was happening. The reason is how gi.actions/group/leaveChatroom is designed. This issue is duplicated with the Issue #1645.

Silver-IT commented 1 year ago

@corrideat, I think these issues(https://github.com/okTurtles/group-income/issues/1720#issuecomment-1773218026, https://github.com/okTurtles/group-income/issues/1720#issuecomment-1769776760, https://github.com/okTurtles/group-income/issues/1720#issuecomment-1770125591) are happening because the JOINING_GROUP-${params.contractID} is not set properly.

As I have explained in here and here, JOINING_GROUP-${params.contractID} should be set true ONLY when joining group, not logging in.

If it is set true, then the group contract won't be removed inside the gi.contracts/group/removeMember sideEffect function even though user has already left the group.

taoeffect commented 1 year ago

When testing: https://github.com/okTurtles/group-income/pull/1779

On u3 in [Tab4]:

Screenshot 2023-10-24 at 11 49 42 AM Screenshot 2023-10-24 at 11 50 16 AM

  1. [Tab1] u1 creates group
  2. [Tab2] u1 logs in
  3. [Tab3] u2 joins group
  4. [Tab4] u3 joins group
  5. [Tab5], [Tab6], [Tab7] (respectively), u4, u5, u6 join group simultaneously
  6. [Tab1] u1 creates public chatroom and adds everyone to it
  7. [Tab3] u2 creates private chatroom and adds everyone to it, and creates DM to everyone
  8. [Tab1] u1 leaves group and rejoins

Now errors in tabs 3, 4, 5 (not all of them) related to key rotation and missing keys.

Another issue is that no errors were shown in the notifications to the user. It looks like there was some issue with the handleEventError hook.

Silver-IT commented 9 months ago

Since the e2e-protocol branch is already merged to the master, and the Cypress is fully passed in master branch, I will close this issue.