/**
 * Program IDL in camelCase format in order to be used in JS/TS.
 *
 * Note that this is only a type helper and is not the actual IDL. The original
 * IDL can be found at `target/idl/example.json`.
 */
export type Example = {
    "address": "exCJEJeiWNbq13aZaaYVyeWXQ5hjj3r6fn4GtceoR9f";
    "metadata": {
        "name": "example";
        "version": "0.1.0";
        "spec": "0.1.0";
        "description": "Created with Anchor";
    };
    "instructions": [
        {
            "name": "addService";
            "discriminator": [
                133,
                207,
                106,
                32,
                91,
                111,
                153,
                30
            ];
            "accounts": [
                {
                    "name": "didData";
                    "writable": true;
                },
                {
                    "name": "authority";
                    "signer": true;
                },
                {
                    "name": "solDidProgram";
                    "address": "didso1Dpqpm4CsiCjzP766BGY89CAdD6ZBL68cRhFPc";
                }
            ];
            "args": [
                {
                    "name": "fragment";
                    "type": "string";
                },
                {
                    "name": "serviceType";
                    "type": "string";
                },
                {
                    "name": "serviceEndpoint";
                    "type": "string";
                }
            ];
        },
        {
            "name": "initialize";
            "discriminator": [
                175,
                175,
                109,
                31,
                13,
                152,
                155,
                237
            ];
            "accounts": [
                {
                    "name": "didData";
                    "writable": true;
                },
                {
                    "name": "authority";
                    "writable": true;
                    "signer": true;
                },
                {
                    "name": "payer";
                    "writable": true;
                    "signer": true;
                },
                {
                    "name": "systemProgram";
                    "address": "11111111111111111111111111111111";
                },
                {
                    "name": "solDidProgram";
                    "address": "didso1Dpqpm4CsiCjzP766BGY89CAdD6ZBL68cRhFPc";
                }
            ];
            "args": [
                {
                    "name": "size";
                    "type": "u32";
                }
            ];
        }
    ];
    "accounts": [
        {
            "name": "didAccount";
            "discriminator": [
                77,
                88,
                239,
                141,
                251,
                29,
                237,
                243
            ];
        }
    ];
    "types": [
        {
            "name": "didAccount";
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "version";
                        "docs": [
                            "Version identifier"
                        ];
                        "type": "u8";
                    },
                    {
                        "name": "bump";
                        "docs": [
                            "Bump"
                        ];
                        "type": "u8";
                    },
                    {
                        "name": "nonce";
                        "docs": [
                            "Nonce, for protecting against replay attacks around secp256k1 signatures."
                        ];
                        "type": "u64";
                    },
                    {
                        "name": "initialVerificationMethod";
                        "docs": [
                            "The initial authority key, automatically being added to the array of all Verification Methods."
                        ];
                        "type": {
                            "defined": {
                                "name": "verificationMethod";
                            };
                        };
                    },
                    {
                        "name": "verificationMethods";
                        "docs": [
                            "All verification methods"
                        ];
                        "type": {
                            "vec": {
                                "defined": {
                                    "name": "verificationMethod";
                                };
                            };
                        };
                    },
                    {
                        "name": "services";
                        "docs": [
                            "Services"
                        ];
                        "type": {
                            "vec": {
                                "defined": {
                                    "name": "service";
                                };
                            };
                        };
                    },
                    {
                        "name": "nativeControllers";
                        "docs": [
                            "Controller (native) - did:sol:<controller>"
                        ];
                        "type": {
                            "vec": "pubkey";
                        };
                    },
                    {
                        "name": "otherControllers";
                        "docs": [
                            "Controller (others) - all others"
                        ];
                        "type": {
                            "vec": "string";
                        };
                    }
                ];
            };
        },
        {
            "name": "service";
            "docs": [
                "A Service Definition [`DidAccount`]"
            ];
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "fragment";
                        "type": "string";
                    },
                    {
                        "name": "serviceType";
                        "type": "string";
                    },
                    {
                        "name": "serviceEndpoint";
                        "type": "string";
                    }
                ];
            };
        },
        {
            "name": "verificationMethod";
            "docs": [
                "The native authority key for a [`DidAccount`]"
            ];
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "fragment";
                        "docs": [
                            "fragment"
                        ];
                        "type": "string";
                    },
                    {
                        "name": "flags";
                        "docs": [
                            "The permissions this key has"
                        ];
                        "type": "u16";
                    },
                    {
                        "name": "methodType";
                        "docs": [
                            "The actual verification method"
                        ];
                        "type": "u8";
                    },
                    {
                        "name": "keyData";
                        "docs": [
                            "Dynamically sized key matching the given VerificationType"
                        ];
                        "type": "bytes";
                    }
                ];
            };
        }
    ];
};
