@identity.com/sol-did-idl
Version:
The official Solana IDL for did:sol
693 lines (692 loc) • 20.7 kB
TypeScript
export declare type SolDid = {
"version": "3.1.0";
"name": "sol_did";
"instructions": [
{
"name": "initialize";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": true;
"isSigner": true;
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "size";
"type": "u32";
}
];
},
{
"name": "resize";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "size";
"type": "u32";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "close";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
},
{
"name": "destination";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "addVerificationMethod";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "verificationMethod";
"type": {
"defined": "VerificationMethod";
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "removeVerificationMethod";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "fragment";
"type": "string";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "addService";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "service";
"type": {
"defined": "Service";
};
},
{
"name": "allowOverwrite";
"type": "bool";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "removeService";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "fragment";
"type": "string";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "setVmFlags";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "flagsVm";
"type": {
"defined": "UpdateFlagsVerificationMethod";
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "setControllers";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "setControllersArg";
"type": {
"defined": "SetControllersArg";
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "update";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": true;
}
];
"args": [
{
"name": "updateArg";
"type": {
"defined": "UpdateArg";
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": "Secp256k1RawSignature";
};
};
}
];
},
{
"name": "migrate";
"accounts": [
{
"name": "didData";
"isMut": true;
"isSigner": false;
},
{
"name": "authority";
"isMut": false;
"isSigner": false;
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "legacyDidData";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
}
];
"accounts": [
{
"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": "VerificationMethod";
};
},
{
"name": "verificationMethods";
"docs": [
"All verification methods"
];
"type": {
"vec": {
"defined": "VerificationMethod";
};
};
},
{
"name": "services";
"docs": [
"Services"
];
"type": {
"vec": {
"defined": "Service";
};
};
},
{
"name": "nativeControllers";
"docs": [
"Controller (native) - did:sol:<controller>"
];
"type": {
"vec": "publicKey";
};
},
{
"name": "otherControllers";
"docs": [
"Controller (others) - all others"
];
"type": {
"vec": "string";
};
}
];
};
}
];
"types": [
{
"name": "SetControllersArg";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "nativeControllers";
"type": {
"vec": "publicKey";
};
},
{
"name": "otherControllers";
"type": {
"vec": "string";
};
}
];
};
},
{
"name": "UpdateFlagsVerificationMethod";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "fragment";
"type": "string";
},
{
"name": "flags";
"type": "u16";
}
];
};
},
{
"name": "UpdateArg";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "verificationMethods";
"docs": [
"All verification methods"
];
"type": {
"vec": {
"defined": "VerificationMethod";
};
};
},
{
"name": "services";
"docs": [
"Services"
];
"type": {
"vec": {
"defined": "Service";
};
};
},
{
"name": "nativeControllers";
"docs": [
"Controller (native) - did:sol:<controller>"
];
"type": {
"vec": "publicKey";
};
},
{
"name": "otherControllers";
"docs": [
"Controller (others) - all others"
];
"type": {
"vec": "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";
}
];
};
},
{
"name": "Service";
"docs": [
"A Service Definition [`DidAccount`]"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "fragment";
"type": "string";
},
{
"name": "serviceType";
"type": "string";
},
{
"name": "serviceEndpoint";
"type": "string";
}
];
};
},
{
"name": "Secp256k1RawSignature";
"type": {
"kind": "struct";
"fields": [
{
"name": "signature";
"type": {
"array": [
"u8",
64
];
};
},
{
"name": "recoveryId";
"type": "u8";
}
];
};
},
{
"name": "VerificationMethodType";
"type": {
"kind": "enum";
"variants": [
{
"name": "Ed25519VerificationKey2018";
},
{
"name": "EcdsaSecp256k1RecoveryMethod2020";
},
{
"name": "EcdsaSecp256k1VerificationKey2019";
}
];
};
}
];
"errors": [
{
"code": 6000;
"name": "VmFragmentNotFound";
"msg": "No VM with the given fragment exists";
},
{
"code": 6001;
"name": "VmFragmentAlreadyInUse";
"msg": "Given VM fragment is already in use";
},
{
"code": 6002;
"name": "VmOwnershipOnAdd";
"msg": "Cannot add a verification method with OwnershipProof flag";
},
{
"code": 6003;
"name": "VmCannotRemoveLastAuthority";
"msg": "Removing the last verification method would lead to a lockout";
},
{
"code": 6004;
"name": "ServiceFragmentAlreadyInUse";
"msg": "Service already exists in current service list";
},
{
"code": 6005;
"name": "ServiceFragmentNotFound";
"msg": "Service doesn't exists in current service list";
},
{
"code": 6006;
"name": "InvalidOtherControllers";
"msg": "Invalid other controllers. Invalid DID format or did:sol:<did>";
},
{
"code": 6007;
"name": "InvalidNativeControllers";
"msg": "Invalid native controllers. Cannot set itself as a controller";
},
{
"code": 6008;
"name": "InsufficientInitialSize";
"msg": "Initial Account size is insufficient for serialization";
},
{
"code": 6009;
"name": "ConversionError";
"msg": "Could not convert between data types";
},
{
"code": 6010;
"name": "InvalidControllerChain";
"msg": "Invalid chain of controlling DidAccounts";
}
];
};
export declare const IDL: SolDid;