{
  "address": "DuaLwpVYtkyuRLPFDF9BcJx2YiDCXQ3n5PsQ4C8en1wj",
  "metadata": {
    "name": "dual_fill",
    "version": "0.1.0",
    "spec": "0.1.0",
    "description": "Opening fill for the Solana side of a Dual Fill"
  },
  "instructions": [
    {
      "name": "abort",
      "discriminator": [
        73,
        205,
        102,
        177,
        241,
        200,
        145,
        80
      ],
      "accounts": [
        {
          "name": "opener",
          "signer": true
        },
        {
          "name": "fill",
          "writable": true
        }
      ],
      "args": []
    },
    {
      "name": "cancel",
      "discriminator": [
        232,
        219,
        223,
        41,
        219,
        236,
        220,
        190
      ],
      "accounts": [
        {
          "name": "creator",
          "signer": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "fill",
          "writable": true
        }
      ],
      "args": []
    },
    {
      "name": "claim",
      "discriminator": [
        62,
        198,
        214,
        193,
        213,
        159,
        108,
        210
      ],
      "accounts": [
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fill",
          "writable": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "vault_token",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "account",
                "path": "vault"
              },
              {
                "kind": "const",
                "value": [
                  6,
                  221,
                  246,
                  225,
                  215,
                  101,
                  161,
                  147,
                  217,
                  203,
                  225,
                  70,
                  206,
                  235,
                  121,
                  172,
                  28,
                  180,
                  133,
                  237,
                  95,
                  91,
                  55,
                  145,
                  58,
                  140,
                  245,
                  133,
                  126,
                  255,
                  0,
                  169
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                140,
                151,
                37,
                143,
                78,
                36,
                137,
                241,
                187,
                61,
                16,
                41,
                20,
                142,
                13,
                131,
                11,
                90,
                19,
                153,
                218,
                255,
                16,
                132,
                4,
                142,
                123,
                216,
                219,
                233,
                248,
                89
              ]
            }
          }
        },
        {
          "name": "receipt",
          "writable": true
        },
        {
          "name": "contributor",
          "writable": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "contributor_token",
          "writable": true
        },
        {
          "name": "mint",
          "relations": [
            "fill"
          ]
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "close_fill",
      "discriminator": [
        64,
        145,
        84,
        179,
        61,
        80,
        53,
        149
      ],
      "accounts": [
        {
          "name": "fill",
          "writable": true
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "vault_token",
          "writable": true
        },
        {
          "name": "mint",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "creator",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "contribute",
      "discriminator": [
        82,
        33,
        68,
        131,
        32,
        0,
        205,
        95
      ],
      "accounts": [
        {
          "name": "contributor",
          "writable": true,
          "signer": true
        },
        {
          "name": "fill",
          "writable": true
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "receipt",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  114,
                  101,
                  99,
                  101,
                  105,
                  112,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              },
              {
                "kind": "account",
                "path": "contributor"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "create_fill",
      "discriminator": [
        142,
        182,
        104,
        152,
        29,
        143,
        186,
        210
      ],
      "accounts": [
        {
          "name": "creator",
          "writable": true,
          "signer": true
        },
        {
          "name": "fill",
          "writable": true
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "ripples_config",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                6,
                85,
                59,
                3,
                220,
                253,
                156,
                146,
                57,
                140,
                217,
                203,
                177,
                89,
                89,
                127,
                177,
                170,
                65,
                207,
                211,
                84,
                237,
                153,
                70,
                193,
                231,
                60,
                153,
                251,
                213,
                58
              ]
            }
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "args",
          "type": {
            "defined": {
              "name": "CreateFillArgs"
            }
          }
        }
      ]
    },
    {
      "name": "open",
      "discriminator": [
        228,
        220,
        155,
        71,
        199,
        189,
        60,
        45
      ],
      "accounts": [
        {
          "name": "opener",
          "writable": true,
          "signer": true
        },
        {
          "name": "fill",
          "writable": true
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "vault_token",
          "writable": true
        },
        {
          "name": "creator",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "config",
          "writable": true
        },
        {
          "name": "launch",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "launch_authority"
        },
        {
          "name": "mint",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "token_vault",
          "writable": true
        },
        {
          "name": "metadata",
          "writable": true
        },
        {
          "name": "treasury",
          "writable": true
        },
        {
          "name": "token_metadata_program"
        },
        {
          "name": "instructions"
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "ripples_program",
          "address": "RippcKjgg9pkjHY7RKp6R1K8jPGwq2BRSJcgbErufjF"
        }
      ],
      "args": []
    },
    {
      "name": "refund",
      "discriminator": [
        2,
        96,
        183,
        251,
        63,
        208,
        46,
        46
      ],
      "accounts": [
        {
          "name": "fill",
          "writable": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "receipt",
          "writable": true
        },
        {
          "name": "contributor",
          "writable": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "return_reserve",
      "discriminator": [
        101,
        177,
        180,
        96,
        25,
        206,
        16,
        214
      ],
      "accounts": [
        {
          "name": "fill",
          "writable": true
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "creator",
          "writable": true,
          "relations": [
            "fill"
          ]
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "withdraw",
      "discriminator": [
        183,
        18,
        70,
        156,
        148,
        109,
        161,
        34
      ],
      "accounts": [
        {
          "name": "contributor",
          "writable": true,
          "signer": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "fill",
          "writable": true,
          "relations": [
            "receipt"
          ]
        },
        {
          "name": "vault",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "fill"
              }
            ]
          }
        },
        {
          "name": "receipt",
          "writable": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "Fill",
      "discriminator": [
        246,
        116,
        142,
        122,
        204,
        199,
        44,
        113
      ]
    },
    {
      "name": "Receipt",
      "discriminator": [
        39,
        154,
        73,
        106,
        80,
        102,
        145,
        153
      ]
    }
  ],
  "events": [
    {
      "name": "Claimed",
      "discriminator": [
        217,
        192,
        123,
        72,
        108,
        150,
        248,
        33
      ]
    },
    {
      "name": "Contributed",
      "discriminator": [
        196,
        199,
        157,
        136,
        180,
        222,
        100,
        118
      ]
    },
    {
      "name": "FillAborted",
      "discriminator": [
        95,
        208,
        117,
        101,
        207,
        23,
        9,
        217
      ]
    },
    {
      "name": "FillCancelled",
      "discriminator": [
        97,
        122,
        229,
        199,
        172,
        58,
        4,
        250
      ]
    },
    {
      "name": "FillClosed",
      "discriminator": [
        246,
        44,
        72,
        213,
        123,
        220,
        103,
        70
      ]
    },
    {
      "name": "FillCreated",
      "discriminator": [
        123,
        222,
        147,
        167,
        196,
        201,
        21,
        237
      ]
    },
    {
      "name": "FillFull",
      "discriminator": [
        203,
        200,
        91,
        49,
        66,
        89,
        208,
        57
      ]
    },
    {
      "name": "FillOpened",
      "discriminator": [
        11,
        81,
        158,
        146,
        137,
        66,
        48,
        97
      ]
    },
    {
      "name": "Refunded",
      "discriminator": [
        35,
        103,
        149,
        246,
        196,
        123,
        221,
        99
      ]
    },
    {
      "name": "ReserveReturned",
      "discriminator": [
        134,
        110,
        108,
        227,
        45,
        85,
        55,
        53
      ]
    },
    {
      "name": "Withdrawn",
      "discriminator": [
        20,
        89,
        223,
        198,
        194,
        124,
        219,
        13
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "InvalidMetadata",
      "msg": "Name, symbol or metadata URI is empty or too long"
    },
    {
      "code": 6001,
      "name": "InvalidTerms",
      "msg": "Launch terms are not the Dual Fill curve shape"
    },
    {
      "code": 6002,
      "name": "Unreachable",
      "msg": "The launch program would refuse these terms"
    },
    {
      "code": 6003,
      "name": "InvalidTarget",
      "msg": "Target is below the minimum contribution or above 40% of the graduation target"
    },
    {
      "code": 6004,
      "name": "InvalidDeadline",
      "msg": "Deadline or public window is outside the allowed range"
    },
    {
      "code": 6005,
      "name": "InvalidDualFillKey",
      "msg": "Dual Fill key is empty"
    },
    {
      "code": 6006,
      "name": "OpenerRequired",
      "msg": "A fill needs an opener"
    },
    {
      "code": 6007,
      "name": "CreatorTaxTooHigh",
      "msg": "Creator charge is above the ceiling"
    },
    {
      "code": 6008,
      "name": "NotFilling",
      "msg": "The fill is not taking contributions"
    },
    {
      "code": 6009,
      "name": "FillFull",
      "msg": "The fill already holds its target"
    },
    {
      "code": 6010,
      "name": "BelowMinimum",
      "msg": "Contribution is below the minimum"
    },
    {
      "code": 6011,
      "name": "InsufficientReceipt",
      "msg": "Amount is zero or more than this receipt holds"
    },
    {
      "code": 6012,
      "name": "NotFull",
      "msg": "The fill is not full"
    },
    {
      "code": 6013,
      "name": "OpenWindowClosed",
      "msg": "The window to open this fill has closed"
    },
    {
      "code": 6014,
      "name": "WrongOpener",
      "msg": "Only the fill's opener may do this"
    },
    {
      "code": 6015,
      "name": "OpeningMismatch",
      "msg": "The opening buy returned a different token amount than the terms imply"
    },
    {
      "code": 6016,
      "name": "NotOpened",
      "msg": "The fill has not opened"
    },
    {
      "code": 6017,
      "name": "NotRefundable",
      "msg": "Refunds are not available yet"
    },
    {
      "code": 6018,
      "name": "Outstanding",
      "msg": "The fill still holds contributions"
    },
    {
      "code": 6019,
      "name": "Overflow",
      "msg": "Arithmetic overflow"
    },
    {
      "code": 6020,
      "name": "OpenAloneFill",
      "msg": "A fill that may open alone cannot be aborted"
    },
    {
      "code": 6021,
      "name": "AlreadySettled",
      "msg": "The creator's bond has already been returned"
    },
    {
      "code": 6022,
      "name": "AlreadyClosed",
      "msg": "The fill is already closed"
    },
    {
      "code": 6023,
      "name": "WalletLimitReached",
      "msg": "This wallet already holds its share of the target for the public window"
    },
    {
      "code": 6024,
      "name": "WithdrawalsFrozen",
      "msg": "Withdrawals are closed for the last minutes of the public window"
    }
  ],
  "types": [
    {
      "name": "Claimed",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "contributor",
            "type": "pubkey"
          },
          {
            "name": "quote",
            "type": "u64"
          },
          {
            "name": "tokens",
            "type": "u64"
          },
          {
            "name": "refund",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "Contributed",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "contributor",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "total",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "CreateFillArgs",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "dual_fill_key",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "opener",
            "type": "pubkey"
          },
          {
            "name": "open_alone",
            "type": "bool"
          },
          {
            "name": "target",
            "type": "u64"
          },
          {
            "name": "deadline",
            "type": "i64"
          },
          {
            "name": "public_until",
            "type": "i64"
          },
          {
            "name": "terms",
            "type": {
              "defined": {
                "name": "Terms"
              }
            }
          }
        ]
      }
    },
    {
      "name": "Fill",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "creator",
            "docs": [
              "Signed `create_fill`, posted the bond, and receives the launch's creator income."
            ],
            "type": "pubkey"
          },
          {
            "name": "opener",
            "docs": [
              "May open a full fill and abort a default-mode one. Neither moves money anywhere but back",
              "to the people it came from or into the launch."
            ],
            "type": "pubkey"
          },
          {
            "name": "dual_fill_key",
            "docs": [
              "The commitment the Robinhood Chain side stores too, so the two sides can be matched",
              "without either chain seeing the other."
            ],
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "target",
            "type": "u64"
          },
          {
            "name": "total",
            "type": "u64"
          },
          {
            "name": "reserve",
            "type": "u64"
          },
          {
            "name": "deadline",
            "type": "i64"
          },
          {
            "name": "public_until",
            "type": "i64"
          },
          {
            "name": "opened_at",
            "type": "i64"
          },
          {
            "name": "tokens",
            "type": "u64"
          },
          {
            "name": "claimed_quote",
            "type": "u64"
          },
          {
            "name": "claimed_tokens",
            "type": "u64"
          },
          {
            "name": "claimed_excess",
            "type": "u64"
          },
          {
            "name": "contributors",
            "type": "u32"
          },
          {
            "name": "status",
            "type": {
              "defined": {
                "name": "FillStatus"
              }
            }
          },
          {
            "name": "open_alone",
            "type": "bool"
          },
          {
            "name": "closed",
            "docs": [
              "Set by `close_fill`. The account itself is never closed, so `create_fill` can never",
              "succeed at this address again with a different opener or different terms."
            ],
            "type": "bool"
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "vault_bump",
            "type": "u8"
          },
          {
            "name": "terms",
            "type": {
              "defined": {
                "name": "Terms"
              }
            }
          },
          {
            "name": "profile",
            "type": {
              "defined": {
                "name": "FillProfile"
              }
            }
          },
          {
            "name": "rebate",
            "docs": [
              "Lamports the opening buy paid back to the vault, owed to contributors with the excess.",
              "Always zero on a `Token` fill."
            ],
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FillAborted",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "opener",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "FillCancelled",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "FillClosed",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "returned",
            "type": "u64"
          },
          {
            "name": "burned",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FillCreated",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "creator",
            "type": "pubkey"
          },
          {
            "name": "opener",
            "type": "pubkey"
          },
          {
            "name": "dual_fill_key",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "target",
            "type": "u64"
          },
          {
            "name": "deadline",
            "type": "i64"
          },
          {
            "name": "public_until",
            "type": "i64"
          },
          {
            "name": "open_alone",
            "type": "bool"
          },
          {
            "name": "reserve",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FillFull",
      "docs": [
        "The contribution that reached the target. The fill reads full only once the public window",
        "has also ended."
      ],
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "total",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FillOpened",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "opener",
            "type": "pubkey"
          },
          {
            "name": "quote_in",
            "type": "u64"
          },
          {
            "name": "tokens",
            "type": "u64"
          },
          {
            "name": "reserve_returned",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FillProfile",
      "docs": [
        "The kind of launch a fill opens. `create_fill` always writes `Token`; the other two are held for",
        "combined Dual Fills, so a fill never has to grow to carry one."
      ],
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Token"
          },
          {
            "name": "CombinedToken"
          },
          {
            "name": "Linked"
          }
        ]
      }
    },
    {
      "name": "FillStatus",
      "docs": [
        "Stored as `Filling`, `Opened` or `Cancelled` only. `Full` is what a filling fill reads as once",
        "it holds its target and the public window has ended, which no transaction could write: it",
        "changes with the clock alone."
      ],
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Filling"
          },
          {
            "name": "Full"
          },
          {
            "name": "Opened"
          },
          {
            "name": "Cancelled"
          }
        ]
      }
    },
    {
      "name": "Receipt",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "contributor",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "Refunded",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "contributor",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "ReserveReturned",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "Terms",
      "docs": [
        "Everything `create_launch` will be called with that is not a program constant. Written once",
        "at `create_fill`; `open` takes no arguments, so nothing about the launch is chosen by the key",
        "that opens it."
      ],
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "nonce",
            "type": "u64"
          },
          {
            "name": "virtual_quote",
            "type": "u64"
          },
          {
            "name": "graduation_quote",
            "type": "u64"
          },
          {
            "name": "creator_tax_bps",
            "type": "u16"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "Withdrawn",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fill",
            "type": "pubkey"
          },
          {
            "name": "contributor",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "total",
            "type": "u64"
          }
        ]
      }
    }
  ]
}