Skip to content

[BUG] Non determinstic output (Conflict <> Any) #104

@2xic

Description

@2xic

Describe the Bug

Output is non determinstic

To Reproduce

Run RibbonThetaVault

Sometimes the output is the following

[
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "offset": 0,
    "type": {
      "bytes": {
        "length": null
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000065",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000065",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 12
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000097",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "u_int": {
            "size": null
          }
        }
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000098",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "mapping": {
            "key_type": {
              "bytes": {
                "length": 20
              }
            },
            "value_type": {
              "u_int": {
                "size": 256
              }
            }
          }
        }
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000099",
    "offset": 0,
    "type": {
      "u_int": {
        "size": null
      }
    }
  },
  {
    "index": "0x000000000000000000000000000000000000000000000000000000000000009a",
    "offset": 0,
    "type": "dyn_bytes"
  },
  {
    "index": "0x000000000000000000000000000000000000000000000000000000000000009b",
    "offset": 0,
    "type": "dyn_bytes"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000c9",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "struct": {
            "elements": [
              {
                "offset": 0,
                "type": {
                  "conflicted_type": {
                    "conflicts": [
                      "Word { width: Some(16), usage: Bytes }",
                      "Word { width: Some(256), usage: Bytes }",
                      "Word { width: Some(16), usage: UnsignedNumeric }",
                      "Packed { types: [Span { typ: TypeVariable { id: ead5771c-d412-4eef-bece-a66b8390f654 }, offset: 0, size: 104 }, Span { typ: TypeVariable { id: 7c8b7ed1-912a-439c-ba77-c9103f13e0a4 }, offset: 104, size: 120 }], is_struct: false }",
                      "Word { width: None, usage: UnsignedNumeric }",
                      "Packed { types: [Span { typ: TypeVariable { id: 0f28e49d-e05f-4075-ac59-985241a55709 }, offset: 0, size: 16 }], is_struct: false }",
                      "Word { width: Some(16), usage: Bytes }"
                    ],
                    "reasons": [
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Disagreeing numeric widths"
                    ]
                  }
                }
              },
              {
                "offset": 16,
                "type": "infinite_type"
              },
              {
                "offset": 120,
                "type": {
                  "u_int": {
                    "size": 128
                  }
                }
              }
            ]
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000ca",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": {
          "conflicted_type": {
            "conflicts": [
              "Word { width: Some(16), usage: Bytes }",
              "Word { width: Some(256), usage: Bytes }",
              "Word { width: Some(16), usage: UnsignedNumeric }",
              "Packed { types: [Span { typ: TypeVariable { id: ead5771c-d412-4eef-bece-a66b8390f654 }, offset: 0, size: 104 }, Span { typ: TypeVariable { id: 7c8b7ed1-912a-439c-ba77-c9103f13e0a4 }, offset: 104, size: 120 }], is_struct: false }",
              "Word { width: None, usage: UnsignedNumeric }",
              "Packed { types: [Span { typ: TypeVariable { id: 0f28e49d-e05f-4075-ac59-985241a55709 }, offset: 0, size: 16 }], is_struct: false }",
              "Word { width: Some(16), usage: Bytes }"
            ],
            "reasons": [
              "Conflicts always conflict",
              "Conflicts always conflict",
              "Conflicts always conflict",
              "Conflicts always conflict",
              "Conflicts always conflict",
              "Disagreeing numeric widths"
            ]
          }
        },
        "value_type": {
          "u_int": {
            "size": null
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cb",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "struct": {
            "elements": [
              {
                "offset": 0,
                "type": {
                  "conflicted_type": {
                    "conflicts": [
                      "Word { width: Some(16), usage: Bytes }",
                      "Word { width: Some(256), usage: Bytes }",
                      "Word { width: Some(16), usage: UnsignedNumeric }",
                      "Packed { types: [Span { typ: TypeVariable { id: ead5771c-d412-4eef-bece-a66b8390f654 }, offset: 0, size: 104 }, Span { typ: TypeVariable { id: 7c8b7ed1-912a-439c-ba77-c9103f13e0a4 }, offset: 104, size: 120 }], is_struct: false }",
                      "Word { width: None, usage: UnsignedNumeric }",
                      "Packed { types: [Span { typ: TypeVariable { id: 0f28e49d-e05f-4075-ac59-985241a55709 }, offset: 0, size: 16 }], is_struct: false }",
                      "Word { width: Some(16), usage: Bytes }"
                    ],
                    "reasons": [
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Conflicts always conflict",
                      "Disagreeing numeric widths"
                    ]
                  }
                }
              },
              {
                "offset": 16,
                "type": {
                  "bytes": {
                    "length": 16
                  }
                }
              },
              {
                "offset": 144,
                "type": "any"
              }
            ]
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 0,
    "type": {
      "number": {
        "size": 8
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 8,
    "type": {
      "number": {
        "size": 1
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 9,
    "type": {
      "number": {
        "size": 1
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 10,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 16,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cd",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cd",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 7
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000ce",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 104
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 0,
    "type": {
      "conflicted_type": {
        "conflicts": [
          "Word { width: Some(16), usage: Bytes }",
          "Word { width: Some(256), usage: Bytes }",
          "Word { width: Some(16), usage: UnsignedNumeric }",
          "Packed { types: [Span { typ: TypeVariable { id: ead5771c-d412-4eef-bece-a66b8390f654 }, offset: 0, size: 104 }, Span { typ: TypeVariable { id: 7c8b7ed1-912a-439c-ba77-c9103f13e0a4 }, offset: 104, size: 120 }], is_struct: false }",
          "Word { width: None, usage: UnsignedNumeric }",
          "Packed { types: [Span { typ: TypeVariable { id: 0f28e49d-e05f-4075-ac59-985241a55709 }, offset: 0, size: 16 }], is_struct: false }",
          "Word { width: Some(16), usage: Bytes }"
        ],
        "reasons": [
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Disagreeing numeric widths"
        ]
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 16,
    "type": {
      "bytes": {
        "length": 13
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 120,
    "type": {
      "bytes": {
        "length": 13
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d0",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 128
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d0",
    "offset": 128,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d1",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d2",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d2",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 4
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d3",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d4",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d5",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d6",
    "offset": 0,
    "type": {
      "u_int": {
        "size": null
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f5",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f6",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f7",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f8",
    "offset": 0,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 0,
    "type": {
      "conflicted_type": {
        "conflicts": [
          "Word { width: Some(16), usage: Bytes }",
          "Word { width: Some(256), usage: Bytes }",
          "Word { width: Some(16), usage: UnsignedNumeric }",
          "Packed { types: [Span { typ: TypeVariable { id: ead5771c-d412-4eef-bece-a66b8390f654 }, offset: 0, size: 104 }, Span { typ: TypeVariable { id: 7c8b7ed1-912a-439c-ba77-c9103f13e0a4 }, offset: 104, size: 120 }], is_struct: false }",
          "Word { width: None, usage: UnsignedNumeric }",
          "Packed { types: [Span { typ: TypeVariable { id: 0f28e49d-e05f-4075-ac59-985241a55709 }, offset: 0, size: 16 }], is_struct: false }",
          "Word { width: Some(16), usage: Bytes }"
        ],
        "reasons": [
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Conflicts always conflict",
          "Disagreeing numeric widths"
        ]
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 16,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 144,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fa",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fb",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fc",
    "offset": 0,
    "type": "any"
  }
]

Other times this

[
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "offset": 0,
    "type": {
      "bytes": {
        "length": null
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000065",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000065",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 12
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000097",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "u_int": {
            "size": null
          }
        }
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000098",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "mapping": {
            "key_type": {
              "bytes": {
                "length": 20
              }
            },
            "value_type": {
              "u_int": {
                "size": 256
              }
            }
          }
        }
      }
    }
  },
  {
    "index": "0x0000000000000000000000000000000000000000000000000000000000000099",
    "offset": 0,
    "type": {
      "u_int": {
        "size": null
      }
    }
  },
  {
    "index": "0x000000000000000000000000000000000000000000000000000000000000009a",
    "offset": 0,
    "type": "dyn_bytes"
  },
  {
    "index": "0x000000000000000000000000000000000000000000000000000000000000009b",
    "offset": 0,
    "type": "dyn_bytes"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000c9",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "struct": {
            "elements": [
              {
                "offset": 0,
                "type": "any"
              },
              {
                "offset": 16,
                "type": "any"
              },
              {
                "offset": 104,
                "type": "any"
              },
              {
                "offset": 16,
                "type": "infinite_type"
              },
              {
                "offset": 120,
                "type": {
                  "u_int": {
                    "size": 128
                  }
                }
              }
            ]
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000ca",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": {
          "struct": {
            "elements": [
              {
                "offset": 0,
                "type": "any"
              },
              {
                "offset": 16,
                "type": "any"
              },
              {
                "offset": 104,
                "type": "any"
              }
            ]
          }
        },
        "value_type": {
          "u_int": {
            "size": null
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cb",
    "offset": 0,
    "type": {
      "mapping": {
        "key_type": "address",
        "value_type": {
          "struct": {
            "elements": [
              {
                "offset": 0,
                "type": "any"
              },
              {
                "offset": 16,
                "type": "any"
              },
              {
                "offset": 104,
                "type": "any"
              },
              {
                "offset": 16,
                "type": {
                  "bytes": {
                    "length": 16
                  }
                }
              },
              {
                "offset": 144,
                "type": "any"
              }
            ]
          }
        }
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 0,
    "type": {
      "number": {
        "size": 8
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 8,
    "type": {
      "number": {
        "size": 1
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 9,
    "type": {
      "number": {
        "size": 1
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 10,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cc",
    "offset": 16,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cd",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cd",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 7
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000ce",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 104
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 0,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 16,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 16,
    "type": {
      "bytes": {
        "length": 13
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 104,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000cf",
    "offset": 120,
    "type": {
      "bytes": {
        "length": 13
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d0",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 128
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d0",
    "offset": 128,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d1",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d2",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d2",
    "offset": 160,
    "type": {
      "bytes": {
        "length": 4
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d3",
    "offset": 0,
    "type": "address"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d4",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d5",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000d6",
    "offset": 0,
    "type": {
      "u_int": {
        "size": null
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f5",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f6",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 20
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f7",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f8",
    "offset": 0,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 0,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 16,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 16,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 104,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000f9",
    "offset": 144,
    "type": "any"
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fa",
    "offset": 0,
    "type": {
      "bytes": {
        "length": 16
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fb",
    "offset": 0,
    "type": {
      "u_int": {
        "size": 256
      }
    }
  },
  {
    "index": "0x00000000000000000000000000000000000000000000000000000000000000fc",
    "offset": 0,
    "type": "any"
  }
]

Expected Behaviour

Output format is consistent

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions