{
  "version": "0.1.0",
  "name": "gumdrop",
  "instructions": [
    {
      "name": "newDistributor",
      "accounts": [
        {
          "name": "base",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "bump",
          "type": "u8"
        },
        {
          "name": "root",
          "type": {
            "array": [
              "u8",
              32
            ]
          }
        },
        {
          "name": "temporal",
          "type": "publicKey"
        }
      ]
    },
    {
      "name": "closeDistributorTokenAccount",
      "accounts": [
        {
          "name": "base",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "distributor",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "from",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "to",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "receiver",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "bump",
          "type": "u8"
        }
      ]
    },
    {
      "name": "closeDistributor",
      "accounts": [
        {
          "name": "base",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "distributorWallet",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "receiver",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "bump",
          "type": "u8"
        },
        {
          "name": "walletBump",
          "type": "u8"
        }
      ]
    },
    {
      "name": "proveClaim",
      "accounts": [
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "claimProof",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "temporal",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "claimPrefix",
          "type": "bytes"
        },
        {
          "name": "claimBump",
          "type": "u8"
        },
        {
          "name": "index",
          "type": "u64"
        },
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "claimantSecret",
          "type": "publicKey"
        },
        {
          "name": "resource",
          "type": "publicKey"
        },
        {
          "name": "resourceNonce",
          "type": "bytes"
        },
        {
          "name": "proof",
          "type": {
            "vec": {
              "array": [
                "u8",
                32
              ]
            }
          }
        }
      ]
    },
    {
      "name": "claim",
      "accounts": [
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "claimStatus",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "from",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "to",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "temporal",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "payer",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "claimBump",
          "type": "u8"
        },
        {
          "name": "index",
          "type": "u64"
        },
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "claimantSecret",
          "type": "publicKey"
        },
        {
          "name": "proof",
          "type": {
            "vec": {
              "array": [
                "u8",
                32
              ]
            }
          }
        }
      ]
    },
    {
      "name": "claimCandy",
      "accounts": [
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "distributorWallet",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "claimCount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "temporal",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "payer",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "candyMachineConfig",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "candyMachine",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineWallet",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMint",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMetadata",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMasterEdition",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenMetadataProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "candyMachineProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "clock",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "walletBump",
          "type": "u8"
        },
        {
          "name": "claimBump",
          "type": "u8"
        },
        {
          "name": "index",
          "type": "u64"
        },
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "claimantSecret",
          "type": "publicKey"
        },
        {
          "name": "proof",
          "type": {
            "vec": {
              "array": [
                "u8",
                32
              ]
            }
          }
        }
      ]
    },
    {
      "name": "claimEdition",
      "accounts": [
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "claimCount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "temporal",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "payer",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "metadataNewMetadata",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "metadataNewEdition",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "metadataMasterEdition",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "metadataNewMint",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "metadataEditionMarkPda",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "metadataNewMintAuthority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "metadataMasterTokenAccount",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "metadataNewUpdateAuthority",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "metadataMasterMetadata",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "metadataMasterMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenMetadataProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "claimBump",
          "type": "u8"
        },
        {
          "name": "index",
          "type": "u64"
        },
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "edition",
          "type": "u64"
        },
        {
          "name": "claimantSecret",
          "type": "publicKey"
        },
        {
          "name": "proof",
          "type": {
            "vec": {
              "array": [
                "u8",
                32
              ]
            }
          }
        }
      ]
    },
    {
      "name": "claimCandyProven",
      "accounts": [
        {
          "name": "distributor",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "distributorWallet",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "claimProof",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "payer",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "candyMachineConfig",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "candyMachine",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineWallet",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMint",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMetadata",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "candyMachineMasterEdition",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenMetadataProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "candyMachineProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "clock",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "walletBump",
          "type": "u8"
        },
        {
          "name": "claimBump",
          "type": "u8"
        },
        {
          "name": "index",
          "type": "u64"
        }
      ]
    },
    {
      "name": "recoverUpdateAuthority",
      "accounts": [
        {
          "name": "base",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "distributor",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "distributorWallet",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "newUpdateAuthority",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "metadata",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenMetadataProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "bump",
          "type": "u8"
        },
        {
          "name": "walletBump",
          "type": "u8"
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "MerkleDistributor",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "base",
            "type": "publicKey"
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "root",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "temporal",
            "type": "publicKey"
          }
        ]
      }
    },
    {
      "name": "ClaimStatus",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "isClaimed",
            "type": "bool"
          },
          {
            "name": "claimant",
            "type": "publicKey"
          },
          {
            "name": "claimedAt",
            "type": "i64"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "ClaimCount",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "count",
            "type": "u64"
          },
          {
            "name": "claimant",
            "type": "publicKey"
          }
        ]
      }
    },
    {
      "name": "ClaimProof",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "count",
            "type": "u64"
          },
          {
            "name": "claimant",
            "type": "publicKey"
          },
          {
            "name": "resource",
            "type": "publicKey"
          },
          {
            "name": "resourceNonce",
            "type": "bytes"
          }
        ]
      }
    },
    {
      "name": "CandyMachine",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "authority",
            "type": "publicKey"
          },
          {
            "name": "wallet",
            "type": "publicKey"
          },
          {
            "name": "tokenMint",
            "type": {
              "option": "publicKey"
            }
          },
          {
            "name": "config",
            "type": "publicKey"
          },
          {
            "name": "data",
            "type": {
              "defined": "CandyMachineData"
            }
          },
          {
            "name": "itemsRedeemed",
            "type": "u64"
          },
          {
            "name": "bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "Config",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "authority",
            "type": "publicKey"
          },
          {
            "name": "data",
            "type": {
              "defined": "ConfigData"
            }
          }
        ]
      }
    }
  ],
  "types": [
    {
      "name": "ConfigData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "uuid",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "sellerFeeBasisPoints",
            "type": "u16"
          },
          {
            "name": "creators",
            "type": {
              "vec": {
                "defined": "Creator"
              }
            }
          },
          {
            "name": "maxSupply",
            "type": "u64"
          },
          {
            "name": "isMutable",
            "type": "bool"
          },
          {
            "name": "retainAuthority",
            "type": "bool"
          },
          {
            "name": "maxNumberOfLines",
            "type": "u32"
          }
        ]
      }
    },
    {
      "name": "Creator",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "address",
            "type": "publicKey"
          },
          {
            "name": "verified",
            "type": "bool"
          },
          {
            "name": "share",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "CandyMachineData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "uuid",
            "type": "string"
          },
          {
            "name": "price",
            "type": "u64"
          },
          {
            "name": "itemsAvailable",
            "type": "u64"
          },
          {
            "name": "goLiveDate",
            "type": {
              "option": "i64"
            }
          }
        ]
      }
    }
  ],
  "events": [
    {
      "name": "ClaimedEvent",
      "fields": [
        {
          "name": "index",
          "type": "u64",
          "index": false
        },
        {
          "name": "claimant",
          "type": "publicKey",
          "index": false
        },
        {
          "name": "amount",
          "type": "u64",
          "index": false
        }
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "InvalidProof",
      "msg": "Invalid Merkle proof."
    },
    {
      "code": 6001,
      "name": "DropAlreadyClaimed",
      "msg": "Drop already claimed."
    },
    {
      "code": 6002,
      "name": "Unauthorized",
      "msg": "Account is not authorized to execute this instruction"
    },
    {
      "code": 6003,
      "name": "OwnerMismatch",
      "msg": "Token account owner did not match intended owner"
    },
    {
      "code": 6004,
      "name": "TemporalMismatch",
      "msg": "Temporal signer did not match distributor"
    },
    {
      "code": 6005,
      "name": "NumericalOverflow",
      "msg": "Numerical Overflow"
    },
    {
      "code": 6006,
      "name": "InvalidClaimBump",
      "msg": "Invalid Claim Bump"
    },
    {
      "code": 6007,
      "name": "MustUseOfficialCandyMachine",
      "msg": "Gumdrop only supports the official Metaplex Candy machine contracts"
    }
  ]
}