{
    "address": "dataeP5X1e7XsWN1ovDSEDP5cqaEUnKBmHE5iZhXPVw",
    "metadata": {
        "name": "data_registry",
        "version": "0.0.1",
        "spec": "0.1.0",
        "description": "The Data Registry Program (DRP) enables the ledger of generic asset data.",
        "repository": "https://github.com/bridgesplit/rwa"
    },
    "instructions": [
        {
            "name": "create_data_account",
            "docs": [
                "data functions",
                "create data account"
            ],
            "discriminator": [
                129,
                132,
                92,
                50,
                136,
                89,
                37,
                100
            ],
            "accounts": [
                {
                    "name": "payer",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "signer",
                    "signer": true
                },
                {
                    "name": "data_registry"
                },
                {
                    "name": "data_account",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                }
            ],
            "args": [
                {
                    "name": "args",
                    "type": {
                        "defined": {
                            "name": "CreateDataAccountArgs"
                        }
                    }
                }
            ]
        },
        {
            "name": "create_data_registry",
            "docs": [
                "registry functions",
                "create data registry"
            ],
            "discriminator": [
                206,
                245,
                133,
                230,
                73,
                246,
                116,
                101
            ],
            "accounts": [
                {
                    "name": "payer",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "signer",
                    "signer": true
                },
                {
                    "name": "asset_mint"
                },
                {
                    "name": "data_registry",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "asset_mint"
                            }
                        ]
                    }
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                }
            ],
            "args": [
                {
                    "name": "authority",
                    "type": "pubkey"
                },
                {
                    "name": "delegate",
                    "type": {
                        "option": "pubkey"
                    }
                }
            ]
        },
        {
            "name": "delegate_data_regsitry",
            "docs": [
                "delegate data registry"
            ],
            "discriminator": [
                173,
                92,
                229,
                22,
                152,
                104,
                168,
                224
            ],
            "accounts": [
                {
                    "name": "authority",
                    "signer": true
                },
                {
                    "name": "data_registry",
                    "writable": true
                }
            ],
            "args": [
                {
                    "name": "delegate",
                    "type": "pubkey"
                }
            ]
        },
        {
            "name": "delete_data_account",
            "docs": [
                "delete data account"
            ],
            "discriminator": [
                159,
                5,
                34,
                220,
                166,
                192,
                76,
                92
            ],
            "accounts": [
                {
                    "name": "signer",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "data_registry"
                },
                {
                    "name": "data_account",
                    "writable": true
                }
            ],
            "args": []
        },
        {
            "name": "update_data_account",
            "docs": [
                "update data account"
            ],
            "discriminator": [
                90,
                215,
                94,
                10,
                209,
                249,
                11,
                148
            ],
            "accounts": [
                {
                    "name": "signer",
                    "signer": true
                },
                {
                    "name": "data_registry"
                },
                {
                    "name": "data_account",
                    "writable": true
                }
            ],
            "args": [
                {
                    "name": "args",
                    "type": {
                        "defined": {
                            "name": "UpdateDataAccountArgs"
                        }
                    }
                }
            ]
        }
    ],
    "accounts": [
        {
            "name": "DataAccount",
            "discriminator": [
                85,
                240,
                182,
                158,
                76,
                7,
                18,
                233
            ]
        },
        {
            "name": "DataRegistryAccount",
            "discriminator": [
                57,
                174,
                76,
                239,
                133,
                18,
                173,
                209
            ]
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "UnauthorizedSigner",
            "msg": "The signer is not authorized to perform this action"
        }
    ],
    "types": [
        {
            "name": "CreateDataAccountArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "type_",
                        "type": {
                            "defined": {
                                "name": "DataAccountType"
                            }
                        }
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "DataAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "version",
                        "type": "u8"
                    },
                    {
                        "name": "data_registry",
                        "docs": [
                            "data registry to which the account belongs"
                        ],
                        "type": "pubkey"
                    },
                    {
                        "name": "_type",
                        "docs": [
                            "type of the data account"
                        ],
                        "type": {
                            "defined": {
                                "name": "DataAccountType"
                            }
                        }
                    },
                    {
                        "name": "name",
                        "docs": [
                            "used by creator to store name of the document"
                        ],
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "docs": [
                            "uri pointing to the data stored in the document"
                        ],
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "DataAccountType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Title"
                    },
                    {
                        "name": "Legal"
                    },
                    {
                        "name": "Tax"
                    },
                    {
                        "name": "Miscellaneous"
                    }
                ]
            }
        },
        {
            "name": "DataRegistryAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "version",
                        "type": "u8"
                    },
                    {
                        "name": "asset_mint",
                        "type": "pubkey"
                    },
                    {
                        "name": "authority",
                        "docs": [
                            "can sign creation of new data accounts",
                            "can update delegate",
                            "can update data account authority"
                        ],
                        "type": "pubkey"
                    },
                    {
                        "name": "delegate",
                        "docs": [
                            "can sign creation of new data accounts, can be used if a different org needs to issue data accounts"
                        ],
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "UpdateDataAccountArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "type_",
                        "type": {
                            "defined": {
                                "name": "DataAccountType"
                            }
                        }
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "type": "string"
                    }
                ]
            }
        }
    ]
}
