{
  "source": {
    "hash": "0xd3f781649eacf23e57a65b0dd8f59142c92e6e2cd4656da874a594431d7399a9",
    "language": "ink! 5.0.0",
    "compiler": "rustc 1.73.0",
    "build_info": {
      "build_mode": "Debug",
      "cargo_contract_version": "4.0.2",
      "rust_toolchain": "stable-x86_64-unknown-linux-gnu",
      "wasm_opt_settings": {
        "keep_debug_symbols": false,
        "optimization_passes": "Z"
      }
    }
  },
  "contract": {
    "name": "mother",
    "version": "5.0.0",
    "authors": [
      "Parity Technologies <admin@parity.io>"
    ],
    "description": "Mother of all contracts"
  },
  "image": null,
  "spec": {
    "constructors": [
      {
        "args": [
          {
            "label": "auction",
            "type": {
              "displayName": [
                "Auction"
              ],
              "type": 24
            }
          }
        ],
        "default": false,
        "docs": [],
        "label": "new",
        "payable": false,
        "returnType": {
          "displayName": [
            "ink_primitives",
            "ConstructorResult"
          ],
          "type": 29
        },
        "selector": "0x9bae9d5e"
      },
      {
        "args": [],
        "default": false,
        "docs": [],
        "label": "new_default",
        "payable": false,
        "returnType": {
          "displayName": [
            "ink_primitives",
            "ConstructorResult"
          ],
          "type": 29
        },
        "selector": "0x61ef7e3e"
      },
      {
        "args": [
          {
            "label": "fail",
            "type": {
              "displayName": [
                "bool"
              ],
              "type": 11
            }
          }
        ],
        "default": false,
        "docs": [
          "Demonstrates the ability to fail a constructor safely."
        ],
        "label": "failed_new",
        "payable": false,
        "returnType": {
          "displayName": [
            "ink_primitives",
            "ConstructorResult"
          ],
          "type": 31
        },
        "selector": "0x87a495f6"
      }
    ],
    "docs": [],
    "environment": {
      "accountId": {
        "displayName": [
          "AccountId"
        ],
        "type": 8
      },
      "balance": {
        "displayName": [
          "Balance"
        ],
        "type": 9
      },
      "blockNumber": {
        "displayName": [
          "BlockNumber"
        ],
        "type": 10
      },
      "chainExtension": {
        "displayName": [
          "ChainExtension"
        ],
        "type": 38
      },
      "hash": {
        "displayName": [
          "Hash"
        ],
        "type": 1
      },
      "maxEventTopics": 4,
      "staticBufferSize": 16384,
      "timestamp": {
        "displayName": [
          "Timestamp"
        ],
        "type": 37
      }
    },
    "events": [
      {
        "args": [
          {
            "docs": [],
            "indexed": false,
            "label": "auction",
            "type": {
              "displayName": [
                "Auction"
              ],
              "type": 24
            }
          }
        ],
        "docs": [
          "Event emitted when an auction being echoed."
        ],
        "label": "AuctionEchoed",
        "module_path": "mother::mother",
        "signature_topic": "0x9f3c1597e0c1071a300ddb58b0474976b0d066c9a445c8a4677e5cebb5f8980a"
      }
    ],
    "lang_error": {
      "displayName": [
        "ink",
        "LangError"
      ],
      "type": 30
    },
    "messages": [
      {
        "args": [
          {
            "label": "auction",
            "type": {
              "displayName": [
                "Auction"
              ],
              "type": 24
            }
          }
        ],
        "default": false,
        "docs": [
          " Takes an auction data struct as input and returns it back."
        ],
        "label": "echo_auction",
        "mutates": true,
        "payable": false,
        "returnType": {
          "displayName": [
            "ink",
            "MessageResult"
          ],
          "type": 34
        },
        "selector": "0xbc7ac4cf"
      },
      {
        "args": [
          {
            "label": "fail",
            "type": {
              "displayName": [
                "Option"
              ],
              "type": 35
            }
          }
        ],
        "default": false,
        "docs": [
          " Fails contract execution in the required way."
        ],
        "label": "revert_or_trap",
        "mutates": true,
        "payable": false,
        "returnType": {
          "displayName": [
            "ink",
            "MessageResult"
          ],
          "type": 31
        },
        "selector": "0xe62a1df5"
      },
      {
        "args": [
          {
            "label": "_message",
            "type": {
              "displayName": [
                "String"
              ],
              "type": 0
            }
          }
        ],
        "default": false,
        "docs": [
          " Prints the specified string into node's debug log."
        ],
        "label": "debug_log",
        "mutates": true,
        "payable": false,
        "returnType": {
          "displayName": [
            "ink",
            "MessageResult"
          ],
          "type": 29
        },
        "selector": "0x238582df"
      },
      {
        "args": [
          {
            "label": "message",
            "type": {
              "displayName": [
                "String"
              ],
              "type": 0
            }
          }
        ],
        "default": false,
        "docs": [
          " Mutates the input string to return \"Hello, { name }\""
        ],
        "label": "mut_hello_world",
        "mutates": false,
        "payable": false,
        "returnType": {
          "displayName": [
            "ink",
            "MessageResult"
          ],
          "type": 36
        },
        "selector": "0x23c47128"
      }
    ]
  },
  "storage": {
    "root": {
      "layout": {
        "struct": {
          "fields": [
            {
              "layout": {
                "struct": {
                  "fields": [
                    {
                      "layout": {
                        "leaf": {
                          "key": "0x00000000",
                          "ty": 0
                        }
                      },
                      "name": "name"
                    },
                    {
                      "layout": {
                        "leaf": {
                          "key": "0x00000000",
                          "ty": 1
                        }
                      },
                      "name": "subject"
                    },
                    {
                      "layout": {
                        "struct": {
                          "fields": [
                            {
                              "layout": {
                                "leaf": {
                                  "key": "0x00000000",
                                  "ty": 4
                                }
                              },
                              "name": "0"
                            }
                          ],
                          "name": "Bids"
                        }
                      },
                      "name": "bids"
                    },
                    {
                      "layout": {
                        "array": {
                          "layout": {
                            "leaf": {
                              "key": "0x00000000",
                              "ty": 10
                            }
                          },
                          "len": 3,
                          "offset": "0x00000000"
                        }
                      },
                      "name": "terms"
                    },
                    {
                      "layout": {
                        "enum": {
                          "dispatchKey": "0x00000000",
                          "name": "Status",
                          "variants": {
                            "0": {
                              "fields": [],
                              "name": "NotStarted"
                            },
                            "1": {
                              "fields": [],
                              "name": "OpeningPeriod"
                            },
                            "2": {
                              "fields": [
                                {
                                  "layout": {
                                    "leaf": {
                                      "key": "0x00000000",
                                      "ty": 10
                                    }
                                  },
                                  "name": "0"
                                }
                              ],
                              "name": "EndingPeriod"
                            },
                            "3": {
                              "fields": [
                                {
                                  "layout": {
                                    "enum": {
                                      "dispatchKey": "0x00000000",
                                      "name": "Outline",
                                      "variants": {
                                        "0": {
                                          "fields": [],
                                          "name": "NoWinner"
                                        },
                                        "1": {
                                          "fields": [],
                                          "name": "WinnerDetected"
                                        },
                                        "2": {
                                          "fields": [],
                                          "name": "PayoutCompleted"
                                        }
                                      }
                                    }
                                  },
                                  "name": "0"
                                }
                              ],
                              "name": "Ended"
                            },
                            "4": {
                              "fields": [
                                {
                                  "layout": {
                                    "leaf": {
                                      "key": "0x00000000",
                                      "ty": 10
                                    }
                                  },
                                  "name": "0"
                                }
                              ],
                              "name": "RfDelay"
                            }
                          }
                        }
                      },
                      "name": "status"
                    },
                    {
                      "layout": {
                        "leaf": {
                          "key": "0x00000000",
                          "ty": 11
                        }
                      },
                      "name": "finalized"
                    },
                    {
                      "layout": {
                        "leaf": {
                          "key": "0x00000000",
                          "ty": 12
                        }
                      },
                      "name": "vector"
                    }
                  ],
                  "name": "Auction"
                }
              },
              "name": "auction"
            },
            {
              "layout": {
                "root": {
                  "layout": {
                    "leaf": {
                      "key": "0x2b6e3a01",
                      "ty": 9
                    }
                  },
                  "root_key": "0x2b6e3a01",
                  "ty": 13
                }
              },
              "name": "balances"
            },
            {
              "layout": {
                "root": {
                  "layout": {
                    "leaf": {
                      "key": "0x8482a36e",
                      "ty": 0
                    }
                  },
                  "root_key": "0x8482a36e",
                  "ty": 18
                }
              },
              "name": "log"
            }
          ],
          "name": "Mother"
        }
      },
      "root_key": "0x00000000",
      "ty": 23
    }
  },
  "types": [
    {
      "id": 0,
      "type": {
        "def": {
          "primitive": "str"
        }
      }
    },
    {
      "id": 1,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "type": 2,
                "typeName": "[u8; 32]"
              }
            ]
          }
        },
        "path": [
          "ink_primitives",
          "types",
          "Hash"
        ]
      }
    },
    {
      "id": 2,
      "type": {
        "def": {
          "array": {
            "len": 32,
            "type": 3
          }
        }
      }
    },
    {
      "id": 3,
      "type": {
        "def": {
          "primitive": "u8"
        }
      }
    },
    {
      "id": 4,
      "type": {
        "def": {
          "sequence": {
            "type": 5
          }
        }
      }
    },
    {
      "id": 5,
      "type": {
        "def": {
          "sequence": {
            "type": 6
          }
        }
      }
    },
    {
      "id": 6,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "index": 0,
                "name": "None"
              },
              {
                "fields": [
                  {
                    "type": 7
                  }
                ],
                "index": 1,
                "name": "Some"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 7
          }
        ],
        "path": [
          "Option"
        ]
      }
    },
    {
      "id": 7,
      "type": {
        "def": {
          "tuple": [
            8,
            9
          ]
        }
      }
    },
    {
      "id": 8,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "type": 2,
                "typeName": "[u8; 32]"
              }
            ]
          }
        },
        "path": [
          "ink_primitives",
          "types",
          "AccountId"
        ]
      }
    },
    {
      "id": 9,
      "type": {
        "def": {
          "primitive": "u128"
        }
      }
    },
    {
      "id": 10,
      "type": {
        "def": {
          "primitive": "u32"
        }
      }
    },
    {
      "id": 11,
      "type": {
        "def": {
          "primitive": "bool"
        }
      }
    },
    {
      "id": 12,
      "type": {
        "def": {
          "sequence": {
            "type": 3
          }
        }
      }
    },
    {
      "id": 13,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "K",
            "type": 8
          },
          {
            "name": "V",
            "type": 9
          },
          {
            "name": "KeyType",
            "type": 14
          }
        ],
        "path": [
          "ink_storage",
          "lazy",
          "mapping",
          "Mapping"
        ]
      }
    },
    {
      "id": 14,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "L",
            "type": 15
          },
          {
            "name": "R",
            "type": 16
          }
        ],
        "path": [
          "ink_storage_traits",
          "impls",
          "ResolverKey"
        ]
      }
    },
    {
      "id": 15,
      "type": {
        "def": {
          "composite": {}
        },
        "path": [
          "ink_storage_traits",
          "impls",
          "AutoKey"
        ]
      }
    },
    {
      "id": 16,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "ParentKey",
            "type": 17
          }
        ],
        "path": [
          "ink_storage_traits",
          "impls",
          "ManualKey"
        ]
      }
    },
    {
      "id": 17,
      "type": {
        "def": {
          "tuple": []
        }
      }
    },
    {
      "id": 18,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "name": "len",
                "type": 21,
                "typeName": "Lazy<u32, KeyType>"
              },
              {
                "name": "elements",
                "type": 22,
                "typeName": "Mapping<u32, V, KeyType>"
              }
            ]
          }
        },
        "params": [
          {
            "name": "V",
            "type": 0
          },
          {
            "name": "KeyType",
            "type": 19
          }
        ],
        "path": [
          "ink_storage",
          "lazy",
          "vec",
          "StorageVec"
        ]
      }
    },
    {
      "id": 19,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "L",
            "type": 15
          },
          {
            "name": "R",
            "type": 20
          }
        ],
        "path": [
          "ink_storage_traits",
          "impls",
          "ResolverKey"
        ]
      }
    },
    {
      "id": 20,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "ParentKey",
            "type": 17
          }
        ],
        "path": [
          "ink_storage_traits",
          "impls",
          "ManualKey"
        ]
      }
    },
    {
      "id": 21,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "V",
            "type": 10
          },
          {
            "name": "KeyType",
            "type": 19
          }
        ],
        "path": [
          "ink_storage",
          "lazy",
          "Lazy"
        ]
      }
    },
    {
      "id": 22,
      "type": {
        "def": {
          "composite": {}
        },
        "params": [
          {
            "name": "K",
            "type": 10
          },
          {
            "name": "V",
            "type": 0
          },
          {
            "name": "KeyType",
            "type": 19
          }
        ],
        "path": [
          "ink_storage",
          "lazy",
          "mapping",
          "Mapping"
        ]
      }
    },
    {
      "id": 23,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "name": "auction",
                "type": 24,
                "typeName": "<Auction as::ink::storage::traits::AutoStorableHint<::ink::\nstorage::traits::ManualKey<1146968252u32, ()>,>>::Type"
              },
              {
                "name": "balances",
                "type": 13,
                "typeName": "<Mapping<AccountId, Balance> as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<20606507u32, ()\n>,>>::Type"
              },
              {
                "name": "log",
                "type": 18,
                "typeName": "<StorageVec<String> as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<1856209540u32, ()>,>>::Type"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Mother"
        ]
      }
    },
    {
      "id": 24,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "name": "name",
                "type": 0,
                "typeName": "String"
              },
              {
                "name": "subject",
                "type": 1,
                "typeName": "Hash"
              },
              {
                "name": "bids",
                "type": 25,
                "typeName": "Bids"
              },
              {
                "name": "terms",
                "type": 26,
                "typeName": "[BlockNumber; 3]"
              },
              {
                "name": "status",
                "type": 27,
                "typeName": "Status"
              },
              {
                "name": "finalized",
                "type": 11,
                "typeName": "bool"
              },
              {
                "name": "vector",
                "type": 12,
                "typeName": "Vec<u8>"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Auction"
        ]
      }
    },
    {
      "id": 25,
      "type": {
        "def": {
          "composite": {
            "fields": [
              {
                "type": 4,
                "typeName": "Vec<Vec<Option<(AccountId, Balance)>>>"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Bids"
        ]
      }
    },
    {
      "id": 26,
      "type": {
        "def": {
          "array": {
            "len": 3,
            "type": 10
          }
        }
      }
    },
    {
      "id": 27,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "index": 0,
                "name": "NotStarted"
              },
              {
                "index": 1,
                "name": "OpeningPeriod"
              },
              {
                "fields": [
                  {
                    "type": 10,
                    "typeName": "BlockNumber"
                  }
                ],
                "index": 2,
                "name": "EndingPeriod"
              },
              {
                "fields": [
                  {
                    "type": 28,
                    "typeName": "Outline"
                  }
                ],
                "index": 3,
                "name": "Ended"
              },
              {
                "fields": [
                  {
                    "type": 10,
                    "typeName": "BlockNumber"
                  }
                ],
                "index": 4,
                "name": "RfDelay"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Status"
        ]
      }
    },
    {
      "id": 28,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "index": 0,
                "name": "NoWinner"
              },
              {
                "index": 1,
                "name": "WinnerDetected"
              },
              {
                "index": 2,
                "name": "PayoutCompleted"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Outline"
        ]
      }
    },
    {
      "id": 29,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 17
                  }
                ],
                "index": 0,
                "name": "Ok"
              },
              {
                "fields": [
                  {
                    "type": 30
                  }
                ],
                "index": 1,
                "name": "Err"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 17
          },
          {
            "name": "E",
            "type": 30
          }
        ],
        "path": [
          "Result"
        ]
      }
    },
    {
      "id": 30,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "index": 1,
                "name": "CouldNotReadInput"
              }
            ]
          }
        },
        "path": [
          "ink_primitives",
          "LangError"
        ]
      }
    },
    {
      "id": 31,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 32
                  }
                ],
                "index": 0,
                "name": "Ok"
              },
              {
                "fields": [
                  {
                    "type": 30
                  }
                ],
                "index": 1,
                "name": "Err"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 32
          },
          {
            "name": "E",
            "type": 30
          }
        ],
        "path": [
          "Result"
        ]
      }
    },
    {
      "id": 32,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 17
                  }
                ],
                "index": 0,
                "name": "Ok"
              },
              {
                "fields": [
                  {
                    "type": 33
                  }
                ],
                "index": 1,
                "name": "Err"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 17
          },
          {
            "name": "E",
            "type": 33
          }
        ],
        "path": [
          "Result"
        ]
      }
    },
    {
      "id": 33,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 0,
                    "typeName": "String"
                  }
                ],
                "index": 0,
                "name": "Revert"
              },
              {
                "index": 1,
                "name": "Panic"
              }
            ]
          }
        },
        "path": [
          "mother",
          "mother",
          "Failure"
        ]
      }
    },
    {
      "id": 34,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 24
                  }
                ],
                "index": 0,
                "name": "Ok"
              },
              {
                "fields": [
                  {
                    "type": 30
                  }
                ],
                "index": 1,
                "name": "Err"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 24
          },
          {
            "name": "E",
            "type": 30
          }
        ],
        "path": [
          "Result"
        ]
      }
    },
    {
      "id": 35,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "index": 0,
                "name": "None"
              },
              {
                "fields": [
                  {
                    "type": 33
                  }
                ],
                "index": 1,
                "name": "Some"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 33
          }
        ],
        "path": [
          "Option"
        ]
      }
    },
    {
      "id": 36,
      "type": {
        "def": {
          "variant": {
            "variants": [
              {
                "fields": [
                  {
                    "type": 0
                  }
                ],
                "index": 0,
                "name": "Ok"
              },
              {
                "fields": [
                  {
                    "type": 30
                  }
                ],
                "index": 1,
                "name": "Err"
              }
            ]
          }
        },
        "params": [
          {
            "name": "T",
            "type": 0
          },
          {
            "name": "E",
            "type": 30
          }
        ],
        "path": [
          "Result"
        ]
      }
    },
    {
      "id": 37,
      "type": {
        "def": {
          "primitive": "u64"
        }
      }
    },
    {
      "id": 38,
      "type": {
        "def": {
          "variant": {}
        },
        "path": [
          "ink_env",
          "types",
          "NoChainExtension"
        ]
      }
    }
  ],
  "version": 5
}