@learncard/core 5.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/core.cjs.development.js +81 -10
- package/dist/core.cjs.development.js.map +3 -3
- package/dist/core.cjs.production.min.js +75 -75
- package/dist/core.cjs.production.min.js.map +3 -3
- package/dist/core.d.ts +408 -138
- package/dist/core.esm.js +81 -10
- package/dist/core.esm.js.map +3 -3
- package/package.json +4 -3
package/dist/core.d.ts
CHANGED
@@ -4590,7 +4590,26 @@ declare const VerificationItemValidator: z.ZodObject<{
|
|
4590
4590
|
check: string;
|
4591
4591
|
}>;
|
4592
4592
|
export declare type VerificationItem = z.infer<typeof VerificationItemValidator>;
|
4593
|
+
declare const IDXCredentialValidator: z.ZodObject<{
|
4594
|
+
id: z.ZodString;
|
4595
|
+
title: z.ZodString;
|
4596
|
+
storageType: z.ZodOptional<z.ZodEnum<[
|
4597
|
+
"ceramic"
|
4598
|
+
]>>;
|
4599
|
+
}, "strip", z.ZodTypeAny, {
|
4600
|
+
storageType?: "ceramic" | undefined;
|
4601
|
+
id: string;
|
4602
|
+
title: string;
|
4603
|
+
}, {
|
4604
|
+
storageType?: "ceramic" | undefined;
|
4605
|
+
id: string;
|
4606
|
+
title: string;
|
4607
|
+
}>;
|
4608
|
+
/** @group IDXPlugin */
|
4609
|
+
export declare type IDXCredential = z.infer<typeof IDXCredentialValidator>;
|
4610
|
+
/** @group DIDKit Plugin */
|
4593
4611
|
export declare type DidMethod = "key" | "tz" | "ethr" | `pkh:${"tz" | "tezos" | "sol" | "solana" | "eth" | "celo" | "poly" | "btc" | "doge" | "eip155" | "bip122"}` | `pkh:eip155:${string}` | `pkh:bip122:${string}`;
|
4612
|
+
/** @group DIDKit Plugin */
|
4594
4613
|
export declare type KeyPair = {
|
4595
4614
|
kty: string;
|
4596
4615
|
crv: string;
|
@@ -4598,10 +4617,12 @@ export declare type KeyPair = {
|
|
4598
4617
|
y?: string;
|
4599
4618
|
d: string;
|
4600
4619
|
};
|
4620
|
+
/** @group DIDKit Plugin */
|
4601
4621
|
export declare type ProofOptions = {
|
4602
4622
|
verificationMethod: string;
|
4603
4623
|
proofPurpose: string;
|
4604
4624
|
};
|
4625
|
+
/** @group DIDKit Plugin */
|
4605
4626
|
export declare type DidkitPluginMethods = {
|
4606
4627
|
generateEd25519KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4607
4628
|
generateSecp256k1KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
@@ -4612,8 +4633,34 @@ export declare type DidkitPluginMethods = {
|
|
4612
4633
|
issuePresentation: (presentation: UnsignedVP, options: ProofOptions, keypair: KeyPair) => Promise<VP>;
|
4613
4634
|
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
4614
4635
|
contextLoader: (url: string) => Promise<Record<string, any>>;
|
4636
|
+
resolveDid: (did: string) => Promise<Record<string, any>>;
|
4615
4637
|
};
|
4638
|
+
/** @group DidKey Plugin */
|
4616
4639
|
export declare type Algorithm = "ed25519" | "secp256k1";
|
4640
|
+
/** @group DidKey Plugin */
|
4641
|
+
export declare type DependentMethods<T extends string> = {
|
4642
|
+
generateEd25519KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4643
|
+
generateSecp256k1KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4644
|
+
keyToDid: (type: T, keypair: KeyPair) => string;
|
4645
|
+
};
|
4646
|
+
/** @group DidKey Plugin */
|
4647
|
+
export declare type JWK = {
|
4648
|
+
id: string;
|
4649
|
+
type: string | string[];
|
4650
|
+
controller?: string;
|
4651
|
+
publicKeyJwk?: any;
|
4652
|
+
privateKeyJwk?: any;
|
4653
|
+
"@context": string[];
|
4654
|
+
name: string;
|
4655
|
+
image: string;
|
4656
|
+
description: string;
|
4657
|
+
tags: string[];
|
4658
|
+
value?: string;
|
4659
|
+
generatedFrom?: [
|
4660
|
+
string
|
4661
|
+
];
|
4662
|
+
};
|
4663
|
+
/** @group DidKey Plugin */
|
4617
4664
|
export declare type DidKeyPluginMethods<DidMethod extends string> = {
|
4618
4665
|
getSubjectDid: (type: DidMethod) => string;
|
4619
4666
|
getSubjectKeypair: (type?: Algorithm) => {
|
@@ -4625,6 +4672,7 @@ export declare type DidKeyPluginMethods<DidMethod extends string> = {
|
|
4625
4672
|
};
|
4626
4673
|
getKey: () => string;
|
4627
4674
|
};
|
4675
|
+
/** @group Ethereum Plugin */
|
4628
4676
|
export declare type EthereumPluginMethods = {
|
4629
4677
|
getEthereumAddress: () => string;
|
4630
4678
|
getBalance: (symbolOrAddress?: string) => Promise<string>;
|
@@ -4634,10 +4682,31 @@ export declare type EthereumPluginMethods = {
|
|
4634
4682
|
changeNetwork: (network: providers.Networkish) => void;
|
4635
4683
|
addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
|
4636
4684
|
};
|
4685
|
+
/** @group Ethereum Plugin */
|
4637
4686
|
export declare type EthereumConfig = {
|
4638
4687
|
infuraProjectId?: string;
|
4639
4688
|
network?: providers.Networkish;
|
4640
4689
|
};
|
4690
|
+
/** @group Ethereum Plugin */
|
4691
|
+
export declare type Token = {
|
4692
|
+
chainId: number;
|
4693
|
+
address: string;
|
4694
|
+
name: string;
|
4695
|
+
symbol: string;
|
4696
|
+
decimals: number;
|
4697
|
+
logoURI: string;
|
4698
|
+
extensions: any;
|
4699
|
+
};
|
4700
|
+
/** @group Ethereum Plugin */
|
4701
|
+
export declare type TokenList = Token[];
|
4702
|
+
/** @group IDXPlugin */
|
4703
|
+
export declare type CeramicIDXArgs = {
|
4704
|
+
modelData: ModelAliases;
|
4705
|
+
credentialAlias: string;
|
4706
|
+
ceramicEndpoint: string;
|
4707
|
+
defaultContentFamily: string;
|
4708
|
+
};
|
4709
|
+
/** @group IDXPlugin */
|
4641
4710
|
export declare type IDXPluginMethods = {
|
4642
4711
|
getCredentialsListFromIdx: (alias?: string) => Promise<CredentialsList>;
|
4643
4712
|
publishContentToCeramic: (cred: any) => Promise<string>;
|
@@ -4647,18 +4716,40 @@ export declare type IDXPluginMethods = {
|
|
4647
4716
|
addVerifiableCredentialInIdx: (cred: IDXCredential) => Promise<StreamID>;
|
4648
4717
|
removeVerifiableCredentialInIdx: (title: string) => Promise<StreamID>;
|
4649
4718
|
};
|
4650
|
-
|
4651
|
-
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4655
|
-
|
4656
|
-
|
4657
|
-
|
4658
|
-
|
4659
|
-
|
4660
|
-
|
4661
|
-
|
4719
|
+
/** @group IDXPlugin */
|
4720
|
+
export declare const CredentialsListValidator: z.ZodObject<{
|
4721
|
+
credentials: z.ZodArray<z.ZodObject<{
|
4722
|
+
id: z.ZodString;
|
4723
|
+
title: z.ZodString;
|
4724
|
+
storageType: z.ZodOptional<z.ZodEnum<[
|
4725
|
+
"ceramic"
|
4726
|
+
]>>;
|
4727
|
+
}, "strip", z.ZodTypeAny, {
|
4728
|
+
storageType?: "ceramic" | undefined;
|
4729
|
+
id: string;
|
4730
|
+
title: string;
|
4731
|
+
}, {
|
4732
|
+
storageType?: "ceramic" | undefined;
|
4733
|
+
id: string;
|
4734
|
+
title: string;
|
4735
|
+
}>, "many">;
|
4736
|
+
}, "strict", z.ZodTypeAny, {
|
4737
|
+
credentials: {
|
4738
|
+
storageType?: "ceramic" | undefined;
|
4739
|
+
id: string;
|
4740
|
+
title: string;
|
4741
|
+
}[];
|
4742
|
+
}, {
|
4743
|
+
credentials: {
|
4744
|
+
storageType?: "ceramic" | undefined;
|
4745
|
+
id: string;
|
4746
|
+
title: string;
|
4747
|
+
}[];
|
4748
|
+
}>;
|
4749
|
+
/** @group IDXPlugin */
|
4750
|
+
export declare type CredentialsList = z.infer<typeof CredentialsListValidator>;
|
4751
|
+
/** @group VC Plugin */
|
4752
|
+
export declare type VCPluginDependentMethods = {
|
4662
4753
|
getSubjectDid: (type: "key") => string;
|
4663
4754
|
getSubjectKeypair: () => KeyPair;
|
4664
4755
|
keyToVerificationMethod: (type: string, keypair: KeyPair) => Promise<string>;
|
@@ -4667,7 +4758,8 @@ export declare type DependentMethods = {
|
|
4667
4758
|
issuePresentation: (presentation: UnsignedVP, options: ProofOptions, keypair: KeyPair) => Promise<VP>;
|
4668
4759
|
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
4669
4760
|
};
|
4670
|
-
|
4761
|
+
/** @group VC Plugin */
|
4762
|
+
export declare type VCPluginMethods = VCPluginDependentMethods & {
|
4671
4763
|
issueCredential: (credential: UnsignedVC) => Promise<VC>;
|
4672
4764
|
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
4673
4765
|
issuePresentation: (credential: UnsignedVP) => Promise<VP>;
|
@@ -4675,27 +4767,40 @@ export declare type VCPluginMethods = DependentMethods & {
|
|
4675
4767
|
getTestVc: (subject?: string) => UnsignedVC;
|
4676
4768
|
getTestVp: (credential?: VC) => Promise<UnsignedVP>;
|
4677
4769
|
};
|
4770
|
+
/** @group VC Plugin */
|
4678
4771
|
export declare type VerifyExtension = {
|
4679
4772
|
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
4680
4773
|
};
|
4774
|
+
/** @group VPQR Plugin */
|
4681
4775
|
export declare type VpqrPluginMethods = {
|
4682
4776
|
vpFromQrCode: (text: string) => Promise<VP>;
|
4683
4777
|
vpToQrCode: (vp: VP) => Promise<string>;
|
4684
4778
|
};
|
4779
|
+
/** @group VPQR Plugin */
|
4780
|
+
export declare type VpqrPluginDependentMethods = {
|
4781
|
+
contextLoader: (url: string) => Promise<Record<string, any>>;
|
4782
|
+
};
|
4685
4783
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
4686
4784
|
export declare type InitFunction<Args extends Record<string, any> | undefined = Record<string, any>, Config extends keyof LearnCardConfig = keyof LearnCardConfig, ReturnValue extends LearnCard<any, any> = LearnCard<any, any>> = {
|
4687
4785
|
args: undefined extends Args ? Partial<Pick<LearnCardConfig, Config>> : Args & Partial<Pick<LearnCardConfig, Config>>;
|
4688
4786
|
returnValue: ReturnValue;
|
4689
4787
|
};
|
4788
|
+
export declare type GenericInitFunction<InitFunctions extends InitFunction<any, any, any>[]> = {
|
4789
|
+
args: InitFunctions[number]["args"];
|
4790
|
+
returnValue: Promise<InitFunctions[number]["returnValue"]>;
|
4791
|
+
};
|
4792
|
+
/** @group Universal Wallets */
|
4690
4793
|
export declare type Plugin<Name extends string, PublicMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
|
4691
4794
|
name?: Name;
|
4692
4795
|
pluginMethods: {
|
4693
4796
|
[Key in keyof PublicMethods]: <T extends Wallet<any, PublicMethods>>(wallet: T, ...args: Parameters<PublicMethods[Key]>) => ReturnType<PublicMethods[Key]>;
|
4694
4797
|
};
|
4695
4798
|
};
|
4799
|
+
/** @group Universal Wallets */
|
4696
4800
|
export declare type PublicFieldsObj<PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
|
4697
4801
|
pluginMethods: PluginMethods;
|
4698
4802
|
};
|
4803
|
+
/** @group Universal Wallets */
|
4699
4804
|
export declare type Wallet<PluginNames extends string = "", PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = PublicFieldsObj<PluginMethods> & {
|
4700
4805
|
contents: any[];
|
4701
4806
|
plugins: Plugin<PluginNames, Record<string, (...args: any[]) => any>>[];
|
@@ -4703,152 +4808,317 @@ export declare type Wallet<PluginNames extends string = "", PluginMethods extend
|
|
4703
4808
|
remove: (contentId: string) => Promise<Wallet<PluginNames, PluginMethods>>;
|
4704
4809
|
addPlugin: <Name extends string, Methods extends Record<string, (...args: any[]) => any> = Record<never, never>>(plugin: Plugin<Name, Methods>) => Promise<Wallet<"" extends PluginNames ? Name : PluginNames | Name, Record<never, never> extends PluginMethods ? Methods : PluginMethods & Methods>>;
|
4705
4810
|
};
|
4706
|
-
|
4811
|
+
/**
|
4812
|
+
* Wallet holder's did
|
4813
|
+
*
|
4814
|
+
* @group LearnCard Methods
|
4815
|
+
*/
|
4816
|
+
export declare type Did = (type?: DidMethod) => string;
|
4817
|
+
/**
|
4818
|
+
* Wallet holder's ed25519 key pair
|
4819
|
+
*
|
4820
|
+
* @group LearnCard Methods
|
4821
|
+
*/
|
4822
|
+
export declare type Keypair = (type?: Algorithm) => {
|
4823
|
+
kty: string;
|
4824
|
+
crv: string;
|
4825
|
+
x: string;
|
4826
|
+
y?: string;
|
4827
|
+
d: string;
|
4828
|
+
};
|
4829
|
+
/**
|
4830
|
+
* Signs an unsigned Verifiable Credential, returning the signed VC
|
4831
|
+
*
|
4832
|
+
* @group LearnCard Methods
|
4833
|
+
*/
|
4834
|
+
export declare type IssueCredential = (credential: UnsignedVC) => Promise<VC>;
|
4835
|
+
/**
|
4836
|
+
* Verifies a signed Verifiable Credential
|
4837
|
+
*
|
4838
|
+
* Empty error/warnings arrays means verification was successful
|
4839
|
+
*
|
4840
|
+
* @group LearnCard Methods
|
4841
|
+
*/
|
4842
|
+
export declare type VerifyCredential = (credential: VC) => Promise<VerificationItem[]>;
|
4843
|
+
/**
|
4844
|
+
* Signs an unsigned Verifiable Presentation, returning the signed VP
|
4845
|
+
*
|
4846
|
+
* @group LearnCard Methods
|
4847
|
+
*/
|
4848
|
+
export declare type IssuePresentation = (presentation: UnsignedVP) => Promise<VP>;
|
4849
|
+
/**
|
4850
|
+
* Verifies a signed Verifiable Presentation
|
4851
|
+
*
|
4852
|
+
* Empry error/warnings arrays means verification was successful
|
4853
|
+
*
|
4854
|
+
* @group LearnCard Methods
|
4855
|
+
*/
|
4856
|
+
export declare type VerifyPresentation = (presentation: VP) => Promise<VerificationCheck>;
|
4857
|
+
/**
|
4858
|
+
* Returns the credential marked with `title` from IDX
|
4859
|
+
*
|
4860
|
+
* @group LearnCard Methods
|
4861
|
+
*/
|
4862
|
+
export declare type GetCredential = (title: string) => Promise<VC>;
|
4863
|
+
/**
|
4864
|
+
* Returns all credentials from IDX
|
4865
|
+
*
|
4866
|
+
* @group LearnCard Methods
|
4867
|
+
*/
|
4868
|
+
export declare type GetCredentials = () => Promise<VC[]>;
|
4869
|
+
/**
|
4870
|
+
* Returns all credentials from IDX
|
4871
|
+
*
|
4872
|
+
* @group LearnCard Methods
|
4873
|
+
*/
|
4874
|
+
export declare type GetCredentialsList = () => Promise<IDXCredential[]>;
|
4875
|
+
/**
|
4876
|
+
* Publishes a credential to Ceramic, returning the credential's stream ID
|
4877
|
+
*
|
4878
|
+
* This stream ID may then be shared/persisted/resolved to gain access to the credential
|
4879
|
+
*
|
4880
|
+
* Resolving a stream ID can be done by passing the stream ID to `readFromCeramic`
|
4881
|
+
*
|
4882
|
+
* @group LearnCard Methods
|
4883
|
+
*/
|
4884
|
+
export declare type PublishCredential = (credential: VC) => Promise<string>;
|
4885
|
+
/**
|
4886
|
+
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4887
|
+
* to IDX with a bespoke title
|
4888
|
+
*
|
4889
|
+
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4890
|
+
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4891
|
+
*
|
4892
|
+
* @group LearnCard Methods
|
4893
|
+
*/
|
4894
|
+
export declare type AddCredential = (credential: IDXCredential) => Promise<void>;
|
4895
|
+
/**
|
4896
|
+
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4897
|
+
* to IDX with a bespoke title
|
4898
|
+
*
|
4899
|
+
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4900
|
+
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4901
|
+
*
|
4902
|
+
* @group LearnCard Methods
|
4903
|
+
*/
|
4904
|
+
export declare type RemoveCredential = (title: string) => Promise<void>;
|
4905
|
+
/**
|
4906
|
+
* Resolves a did to its did document
|
4907
|
+
*
|
4908
|
+
* @group LearnCard Methods
|
4909
|
+
*/
|
4910
|
+
export declare type ResolveDid = (did: string) => Promise<Record<string, any>>;
|
4911
|
+
/**
|
4912
|
+
* Resolves a stream ID, returning its contents
|
4913
|
+
*
|
4914
|
+
* This can be given the return value of `publishCredential` to gain access to the credential
|
4915
|
+
* that was published
|
4916
|
+
*
|
4917
|
+
* @group LearnCard Methods
|
4918
|
+
*/
|
4919
|
+
export declare type ReadFromCeramic = (streamId: string) => Promise<any>;
|
4920
|
+
/**
|
4921
|
+
* Returns an example credential, optionally allowing a subject's did to be passed in
|
4922
|
+
*
|
4923
|
+
* You can use this to test out implementations that use this library!
|
4924
|
+
*
|
4925
|
+
* @group LearnCard Methods
|
4926
|
+
*/
|
4927
|
+
export declare type GetTestVc = (subject?: string) => UnsignedVC;
|
4928
|
+
/**
|
4929
|
+
* Wraps a crednetial in an exmaple presentaion. If no credential is provided, a new one will be
|
4930
|
+
* generated using getTestVc
|
4931
|
+
*
|
4932
|
+
* You can use this to test out implementations that use this library!
|
4933
|
+
*
|
4934
|
+
* @group LearnCard Methods
|
4935
|
+
*/
|
4936
|
+
export declare type GetTestVp = (credential?: VC) => Promise<UnsignedVP>;
|
4937
|
+
/**
|
4938
|
+
* Returns Ethereum public address
|
4939
|
+
*
|
4940
|
+
* @group LearnCard Methods
|
4941
|
+
*/
|
4942
|
+
export declare type GetEthereumAddress = () => string;
|
4943
|
+
/**
|
4944
|
+
* Get the balance of an ERC20 token
|
4945
|
+
* Defaults to ETH if symbolOrAddress is not provided
|
4946
|
+
*
|
4947
|
+
* @group LearnCard Methods
|
4948
|
+
*/
|
4949
|
+
export declare type GetBalance = (symbolOrAddress?: string) => Promise<string>;
|
4950
|
+
/**
|
4951
|
+
* Get the balance of an ERC20 token for a given address
|
4952
|
+
* Defaults to ETH if symbolOrAddress is not provided
|
4953
|
+
*
|
4954
|
+
* @group LearnCard Methods
|
4955
|
+
*/
|
4956
|
+
export declare type GetBalanceForAddress = (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
|
4957
|
+
/**
|
4958
|
+
* Transfer tokens to a given address
|
4959
|
+
*
|
4960
|
+
* @group LearnCard Methods
|
4961
|
+
*/
|
4962
|
+
export declare type TransferTokens = (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
|
4963
|
+
/**
|
4964
|
+
* Get your current Ethereum network
|
4965
|
+
*
|
4966
|
+
* @group LearnCard Methods
|
4967
|
+
*/
|
4968
|
+
export declare type GetCurrentNetwork = () => ethers.providers.Networkish;
|
4969
|
+
/**
|
4970
|
+
* Change your Ethereum network
|
4971
|
+
*
|
4972
|
+
* @group LearnCard Methods
|
4973
|
+
*/
|
4974
|
+
export declare type ChangeNetwork = (network: ethers.providers.Networkish) => void;
|
4975
|
+
/**
|
4976
|
+
* Add an infura project id to an existing wallet.
|
4977
|
+
* Really only useful for testing with the CLI right now...
|
4978
|
+
*
|
4979
|
+
* @group LearnCard Methods
|
4980
|
+
*/
|
4981
|
+
export declare type AddInfuraProjectId = (infuraProjectIdToAdd: string) => void;
|
4982
|
+
/**
|
4983
|
+
* Returns a Verifiable Presentation (VP) from a QR code base-64 image data string containing a VP compressed by CBOR-LD.
|
4984
|
+
*
|
4985
|
+
* @group LearnCard Methods
|
4986
|
+
*/
|
4987
|
+
export declare type VpFromQrCode = (text: string) => Promise<VP>;
|
4988
|
+
/**
|
4989
|
+
* Returns a QR-embeddable base-64 image data string from a Verifiable Presentation, compressed using CBOR-LD.
|
4990
|
+
*
|
4991
|
+
* @group LearnCard Methods
|
4992
|
+
*/
|
4993
|
+
export declare type VpToQrCode = (vp: VP) => Promise<string>;
|
4994
|
+
/**
|
4995
|
+
* @group LearnCard Methods
|
4996
|
+
*/
|
4707
4997
|
export declare type AllLearnCardMethods = {
|
4708
|
-
|
4709
|
-
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4719
|
-
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4730
|
-
|
4731
|
-
|
4732
|
-
|
4733
|
-
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
4734
|
-
/** Returns the credential marked with `title` from IDX */
|
4735
|
-
getCredential: (title: string) => Promise<VC>;
|
4736
|
-
/** Returns all credentials from IDX */
|
4737
|
-
getCredentials: () => Promise<VC[]>;
|
4738
|
-
/** Returns all credentials from IDX */
|
4739
|
-
getCredentialsList: () => Promise<IDXCredential[]>;
|
4740
|
-
/**
|
4741
|
-
* Publishes a credential to Ceramic, returning the credential's stream ID
|
4742
|
-
*
|
4743
|
-
* This stream ID may then be shared/persisted/resolved to gain access to the credential
|
4744
|
-
*
|
4745
|
-
* Resolving a stream ID can be done by passing the stream ID to `readFromCeramic`
|
4746
|
-
*/
|
4747
|
-
publishCredential: (credential: VC) => Promise<string>;
|
4748
|
-
/**
|
4749
|
-
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4750
|
-
* to IDX with a bespoke title
|
4751
|
-
*
|
4752
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4753
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4754
|
-
*/
|
4755
|
-
addCredential: (credential: IDXCredential) => Promise<void>;
|
4756
|
-
/**
|
4757
|
-
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4758
|
-
* to IDX with a bespoke title
|
4759
|
-
*
|
4760
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4761
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4762
|
-
*/
|
4763
|
-
removeCredential: (title: string) => Promise<void>;
|
4764
|
-
/**
|
4765
|
-
* Resolves a stream ID, returning its contents
|
4766
|
-
*
|
4767
|
-
* This can be given the return value of `publishCredential` to gain access to the credential
|
4768
|
-
* that was published
|
4769
|
-
*/
|
4770
|
-
readFromCeramic: (streamId: string) => Promise<any>;
|
4771
|
-
/**
|
4772
|
-
* Returns an example credential, optionally allowing a subject's did to be passed in
|
4773
|
-
*
|
4774
|
-
* You can use this to test out implementations that use this library!
|
4775
|
-
*/
|
4776
|
-
getTestVc: (subject?: string) => UnsignedVC;
|
4777
|
-
/**
|
4778
|
-
* Wraps a crednetial in an exmaple presentaion. If no credential is provided, a new one will be
|
4779
|
-
* generated using getTestVc
|
4780
|
-
*
|
4781
|
-
* You can use this to test out implementations that use this library!
|
4782
|
-
*/
|
4783
|
-
getTestVp: (credential?: VC) => Promise<UnsignedVP>;
|
4784
|
-
/**
|
4785
|
-
* Returns Ethereum public address
|
4786
|
-
*/
|
4787
|
-
getEthereumAddress: () => string;
|
4788
|
-
/**
|
4789
|
-
* Get the balance of an ERC20 token
|
4790
|
-
* Defaults to ETH if symbolOrAddress is not provided
|
4791
|
-
*/
|
4792
|
-
getBalance: (symbolOrAddress?: string) => Promise<string>;
|
4793
|
-
/**
|
4794
|
-
* Get the balance of an ERC20 token for a given address
|
4795
|
-
* Defaults to ETH if symbolOrAddress is not provided
|
4796
|
-
*/
|
4797
|
-
getBalanceForAddress: (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
|
4798
|
-
/**
|
4799
|
-
* Transfer tokens to a given address
|
4800
|
-
*/
|
4801
|
-
transferTokens: (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
|
4802
|
-
/**
|
4803
|
-
* Get your current Ethereum network
|
4804
|
-
*/
|
4805
|
-
getCurrentNetwork: () => ethers.providers.Networkish;
|
4806
|
-
/**
|
4807
|
-
* Change your Ethereum network
|
4808
|
-
*/
|
4809
|
-
changeNetwork: (network: ethers.providers.Networkish) => void;
|
4810
|
-
/**
|
4811
|
-
* Add an infura project id to an existing wallet.
|
4812
|
-
* Really only useful for testing with the CLI right now...
|
4813
|
-
*/
|
4814
|
-
addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
|
4815
|
-
/**
|
4816
|
-
* Returns a Verifiable Presentation (VP) from a QR code base-64 image data string containing a VP compressed by CBOR-LD.
|
4817
|
-
*/
|
4818
|
-
vpFromQrCode: (text: string) => Promise<VP>;
|
4819
|
-
/**
|
4820
|
-
* Returns a QR-embeddable base-64 image data string from a Verifiable Presentation, compressed using CBOR-LD.
|
4821
|
-
*/
|
4822
|
-
vpToQrCode: (vp: VP) => Promise<string>;
|
4998
|
+
did: Did;
|
4999
|
+
keypair: Keypair;
|
5000
|
+
issueCredential: IssueCredential;
|
5001
|
+
verifyCredential: VerifyCredential;
|
5002
|
+
issuePresentation: IssuePresentation;
|
5003
|
+
verifyPresentation: VerifyPresentation;
|
5004
|
+
getCredential: GetCredential;
|
5005
|
+
getCredentials: GetCredentials;
|
5006
|
+
getCredentialsList: GetCredentialsList;
|
5007
|
+
publishCredential: PublishCredential;
|
5008
|
+
addCredential: AddCredential;
|
5009
|
+
removeCredential: RemoveCredential;
|
5010
|
+
resolveDid: ResolveDid;
|
5011
|
+
readFromCeramic: ReadFromCeramic;
|
5012
|
+
getTestVc: GetTestVc;
|
5013
|
+
getTestVp: GetTestVp;
|
5014
|
+
getEthereumAddress: GetEthereumAddress;
|
5015
|
+
getBalance: GetBalance;
|
5016
|
+
getBalanceForAddress: GetBalanceForAddress;
|
5017
|
+
transferTokens: TransferTokens;
|
5018
|
+
getCurrentNetwork: GetCurrentNetwork;
|
5019
|
+
changeNetwork: ChangeNetwork;
|
5020
|
+
addInfuraProjectId: AddInfuraProjectId;
|
5021
|
+
vpFromQrCode: VpFromQrCode;
|
5022
|
+
vpToQrCode: VpToQrCode;
|
4823
5023
|
};
|
5024
|
+
/** @group Universal Wallets */
|
5025
|
+
export declare type LearnCardRawWallet = Wallet<"DIDKit" | "DID Key" | "VC" | "IDX" | "Expiration" | "Ethereum" | "Vpqr", DidKeyPluginMethods<DidMethod> & VCPluginMethods & IDXPluginMethods & EthereumPluginMethods & VpqrPluginMethods>;
|
5026
|
+
/**
|
5027
|
+
* @group LearnCard
|
5028
|
+
*/
|
4824
5029
|
export declare type LearnCard<Methods extends keyof AllLearnCardMethods = keyof AllLearnCardMethods, RawWallet extends Wallet<any, any> = LearnCardRawWallet> = {
|
4825
5030
|
/** Raw IoE wallet instance. You shouldn't need to drop down to this level! */
|
4826
5031
|
_wallet: RawWallet;
|
4827
5032
|
} & Pick<AllLearnCardMethods, Methods>;
|
4828
|
-
|
4829
|
-
|
4830
|
-
|
4831
|
-
|
4832
|
-
|
4833
|
-
defaultContentFamily: string;
|
4834
|
-
};
|
5033
|
+
/**
|
5034
|
+
* @group LearnCard
|
5035
|
+
*/
|
5036
|
+
export declare type EmptyLearnCard = LearnCard<"verifyCredential" | "verifyPresentation" | "resolveDid", Wallet<"DIDKit" | "Expiration", DidkitPluginMethods & VerifyExtension>>;
|
5037
|
+
/** @group LearnCard */
|
4835
5038
|
export declare type LearnCardConfig = {
|
4836
5039
|
ceramicIdx: CeramicIDXArgs;
|
4837
5040
|
didkit: InitInput | Promise<InitInput>;
|
4838
5041
|
defaultContents: any[];
|
4839
5042
|
ethereumConfig: EthereumConfig;
|
4840
5043
|
};
|
5044
|
+
/** @group Init Functions */
|
4841
5045
|
export declare type EmptyWallet = InitFunction<undefined, "didkit", EmptyLearnCard>;
|
5046
|
+
/** @group Init Functions */
|
4842
5047
|
export declare type WalletFromKey = InitFunction<{
|
4843
5048
|
seed: string;
|
4844
5049
|
}, keyof LearnCardConfig, LearnCard>;
|
4845
|
-
/**
|
5050
|
+
/** @group Init Functions */
|
5051
|
+
export declare type InitLearnCard = GenericInitFunction<[
|
5052
|
+
EmptyWallet,
|
5053
|
+
WalletFromKey
|
5054
|
+
]>;
|
5055
|
+
/**
|
5056
|
+
* Generates an empty wallet with no key material
|
5057
|
+
*
|
5058
|
+
* @group Init Functions
|
5059
|
+
*/
|
4846
5060
|
export declare const emptyWallet: ({ didkit }?: EmptyWallet["args"]) => Promise<EmptyWallet["returnValue"]>;
|
4847
|
-
/**
|
5061
|
+
/**
|
5062
|
+
* Generates a LearnCard Wallet from a 64 character seed string
|
5063
|
+
*
|
5064
|
+
* @group Init Functions
|
5065
|
+
*/
|
4848
5066
|
export declare const walletFromKey: (key: string, { ceramicIdx, didkit, defaultContents, ethereumConfig, }?: Partial<LearnCardConfig>) => Promise<LearnCard>;
|
5067
|
+
/**
|
5068
|
+
* Generates an Empty Wallet
|
5069
|
+
*
|
5070
|
+
* @group Init Functions
|
5071
|
+
*/
|
4849
5072
|
export declare function initLearnCard(config?: EmptyWallet["args"]): Promise<EmptyWallet["returnValue"]>;
|
5073
|
+
/**
|
5074
|
+
* Generates a full wallet from a 32 byte seed
|
5075
|
+
*
|
5076
|
+
* @group Init Functions
|
5077
|
+
*/
|
4850
5078
|
export declare function initLearnCard(config: WalletFromKey["args"]): Promise<WalletFromKey["returnValue"]>;
|
5079
|
+
export declare const passwordToKey: (password: string, salt?: string, iterations?: number, digest?: string) => Promise<Uint8Array>;
|
5080
|
+
export declare const seedToId: (seed: Uint8Array) => Promise<string>;
|
5081
|
+
/** @group Universal Wallets */
|
5082
|
+
export declare const generateWallet: <PluginNames extends string, PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>>(contents?: any[], _wallet?: Partial<Wallet<any, PluginMethods>>) => Promise<Wallet<PluginNames, PluginMethods>>;
|
5083
|
+
/**
|
5084
|
+
*
|
5085
|
+
* @group Plugins
|
5086
|
+
*/
|
5087
|
+
export declare const getDidKitPlugin: (input?: InitInput | Promise<InitInput>) => Promise<Plugin<"DIDKit", DidkitPluginMethods>>;
|
5088
|
+
/**
|
5089
|
+
*
|
5090
|
+
* @group Plugins
|
5091
|
+
*/
|
5092
|
+
export declare const getDidKeyPlugin: <DidMethod extends string>(wallet: Wallet<string, DependentMethods<DidMethod>>, key: string) => Promise<Plugin<"DID Key", DidKeyPluginMethods<DidMethod>>>;
|
5093
|
+
/**
|
5094
|
+
* @group Plugins
|
5095
|
+
*/
|
5096
|
+
export declare const getVCPlugin: (wallet: Wallet<string, VCPluginDependentMethods>) => Promise<Plugin<"VC", VCPluginMethods>>;
|
5097
|
+
/**
|
5098
|
+
* @group Plugins
|
5099
|
+
*/
|
5100
|
+
export declare const getIDXPlugin: (wallet: Wallet<any, {
|
5101
|
+
getKey: () => string;
|
5102
|
+
}>, { modelData, credentialAlias, ceramicEndpoint, defaultContentFamily }: CeramicIDXArgs) => Promise<Plugin<"IDX", IDXPluginMethods>>;
|
5103
|
+
/**
|
5104
|
+
* @group Plugins
|
5105
|
+
*/
|
5106
|
+
export declare const ExpirationPlugin: (wallet: Wallet<any, VerifyExtension>) => Plugin<"Expiration", VerifyExtension>;
|
5107
|
+
/**
|
5108
|
+
* @group Plugins
|
5109
|
+
*/
|
5110
|
+
export declare const getEthereumPlugin: (initWallet: Wallet<string, {
|
5111
|
+
getSubjectDid: (type: DidMethod) => string;
|
5112
|
+
getSubjectKeypair: (type?: Algorithm) => KeyPair;
|
5113
|
+
}>, config: EthereumConfig) => Plugin<"Ethereum", EthereumPluginMethods>;
|
5114
|
+
/**
|
5115
|
+
* @group Plugins
|
5116
|
+
*/
|
5117
|
+
export declare const getVpqrPlugin: (wallet: Wallet<string, VpqrPluginDependentMethods>) => Plugin<"Vpqr", VpqrPluginMethods>;
|
4851
5118
|
export * from "@wallet/init";
|
4852
5119
|
export { Wallet, Plugin } from "types/wallet";
|
5120
|
+
export * from "types/LearnCard";
|
5121
|
+
export * from "@wallet/base";
|
5122
|
+
export * from "@wallet/plugins";
|
4853
5123
|
|
4854
5124
|
export {};
|