@cheqd/sdk 2.1.0-develop.1 → 2.2.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 +33 -6
- package/build/{index.d.ts → cjs/index.d.ts} +8 -3
- package/build/cjs/index.d.ts.map +1 -0
- package/build/cjs/index.js +144 -0
- package/build/cjs/index.js.map +1 -0
- package/build/{modules → cjs/modules}/_.d.ts +1 -1
- package/build/cjs/modules/_.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/_.js +3 -0
- package/build/cjs/modules/_.js.map +1 -0
- package/build/{modules → cjs/modules}/did.d.ts +4 -2
- package/build/cjs/modules/did.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/did.js +42 -25
- package/build/cjs/modules/did.js.map +1 -0
- package/build/{modules → cjs/modules}/resource.d.ts +2 -2
- package/build/cjs/modules/resource.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/resource.js +13 -5
- package/build/cjs/modules/resource.js.map +1 -0
- package/build/cjs/querier.d.ts.map +1 -0
- package/build/cjs/querier.js.map +1 -0
- package/build/cjs/registry.d.ts.map +1 -0
- package/build/cjs/registry.js.map +1 -0
- package/build/cjs/signer.d.ts.map +1 -0
- package/build/cjs/signer.js.map +1 -0
- package/build/{types.d.ts → cjs/types.d.ts} +1 -1
- package/build/cjs/types.d.ts.map +1 -0
- package/build/cjs/types.js.map +1 -0
- package/build/cjs/utils.d.ts.map +1 -0
- package/build/{utils.js → cjs/utils.js} +2 -5
- package/build/cjs/utils.js.map +1 -0
- package/build/types/index.d.ts +45 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/modules/_.d.ts +20 -0
- package/build/types/modules/_.d.ts.map +1 -0
- package/build/types/modules/did.d.ts +109 -0
- package/build/types/modules/did.d.ts.map +1 -0
- package/build/types/modules/resource.d.ts +62 -0
- package/build/types/modules/resource.d.ts.map +1 -0
- package/build/types/querier.d.ts +11 -0
- package/build/types/querier.d.ts.map +1 -0
- package/build/types/registry.d.ts +4 -0
- package/build/types/registry.d.ts.map +1 -0
- package/build/types/signer.d.ts +36 -0
- package/build/types/signer.d.ts.map +1 -0
- package/build/types/types.d.ts +80 -0
- package/build/types/types.d.ts.map +1 -0
- package/build/types/utils.d.ts +18 -0
- package/build/types/utils.d.ts.map +1 -0
- package/package.json +48 -25
- package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -74
- package/.github/ISSUE_TEMPLATE/config.yml +0 -14
- package/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -27
- package/.github/dependabot.yml +0 -42
- package/.github/linters/.commitlint.rules.js +0 -37
- package/.github/linters/.eslintrc.json +0 -18
- package/.github/linters/.markdown-lint.yml +0 -139
- package/.github/linters/mlc_config.json +0 -13
- package/.github/workflows/build.yml +0 -30
- package/.github/workflows/cleanup-actions.yml +0 -45
- package/.github/workflows/cleanup-cache-automatic.yml +0 -24
- package/.github/workflows/cleanup-cache-manual.yml +0 -21
- package/.github/workflows/codeql.yml +0 -40
- package/.github/workflows/dispatch.yml +0 -30
- package/.github/workflows/lint.yml +0 -51
- package/.github/workflows/pull-request.yml +0 -33
- package/.github/workflows/release.yml +0 -42
- package/.github/workflows/test.yml +0 -66
- package/.releaserc.json +0 -56
- package/CHANGELOG.md +0 -256
- package/CODE_OF_CONDUCT.md +0 -81
- package/NOTICE.md +0 -10
- package/SECURITY.md +0 -12
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -97
- package/build/index.js.map +0 -1
- package/build/modules/_.d.ts.map +0 -1
- package/build/modules/_.js.map +0 -1
- package/build/modules/did.d.ts.map +0 -1
- package/build/modules/did.js.map +0 -1
- package/build/modules/resource.d.ts.map +0 -1
- package/build/modules/resource.js.map +0 -1
- package/build/querier.d.ts.map +0 -1
- package/build/querier.js.map +0 -1
- package/build/registry.d.ts.map +0 -1
- package/build/registry.js.map +0 -1
- package/build/signer.d.ts.map +0 -1
- package/build/signer.js.map +0 -1
- package/build/types.d.ts.map +0 -1
- package/build/types.js.map +0 -1
- package/build/utils.d.ts.map +0 -1
- package/build/utils.js.map +0 -1
- package/docker/Dockerfile +0 -55
- package/docker/entrypoint.sh +0 -58
- package/docker/localnet/build-latest.env +0 -7
- package/docker/localnet/container-env/observer-0.env +0 -13
- package/docker/localnet/container-env/seed-0.env +0 -17
- package/docker/localnet/container-env/validator-0.env +0 -13
- package/docker/localnet/container-env/validator-1.env +0 -13
- package/docker/localnet/container-env/validator-2.env +0 -13
- package/docker/localnet/container-env/validator-3.env +0 -13
- package/docker/localnet/docker-compose.yml +0 -281
- package/docker/localnet/gen-network-config.sh +0 -259
- package/docker/localnet/import-keys.sh +0 -31
- package/jest.config.js +0 -6
- package/src/index.ts +0 -128
- package/src/modules/_.ts +0 -55
- package/src/modules/did.ts +0 -564
- package/src/modules/resource.ts +0 -213
- package/src/querier.ts +0 -33
- package/src/registry.ts +0 -15
- package/src/signer.ts +0 -258
- package/src/types.ts +0 -101
- package/src/utils.ts +0 -243
- package/tests/index.test.ts +0 -135
- package/tests/modules/did.test.ts +0 -965
- package/tests/modules/resource.test.ts +0 -785
- package/tests/signer.test.ts +0 -179
- package/tests/testutils.test.ts +0 -24
- package/tests/utils.test.ts +0 -66
- package/tsconfig.json +0 -80
- /package/build/{querier.d.ts → cjs/querier.d.ts} +0 -0
- /package/build/{querier.js → cjs/querier.js} +0 -0
- /package/build/{registry.d.ts → cjs/registry.d.ts} +0 -0
- /package/build/{registry.js → cjs/registry.js} +0 -0
- /package/build/{signer.d.ts → cjs/signer.d.ts} +0 -0
- /package/build/{signer.js → cjs/signer.js} +0 -0
- /package/build/{types.js → cjs/types.js} +0 -0
- /package/build/{utils.d.ts → cjs/utils.d.ts} +0 -0
package/src/index.ts
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { OfflineSigner, Registry } from '@cosmjs/proto-signing'
|
|
2
|
-
import { DIDModule, MinimalImportableDIDModule, DidExtension } from './modules/did';
|
|
3
|
-
import { MinimalImportableResourceModule, ResourceModule, ResourceExtension } from './modules/resource';
|
|
4
|
-
import { AbstractCheqdSDKModule, applyMixins, instantiateCheqdSDKModule, instantiateCheqdSDKModuleRegistryTypes, instantiateCheqdSDKModuleQuerierExtensionSetup } from './modules/_';
|
|
5
|
-
import { createDefaultCheqdRegistry } from './registry'
|
|
6
|
-
import { CheqdSigningStargateClient } from './signer'
|
|
7
|
-
import { CheqdNetwork, IContext, IModuleMethodMap } from './types';
|
|
8
|
-
import { createSignInputsFromImportableEd25519Key } from './utils'
|
|
9
|
-
import { GasPrice, QueryClient } from '@cosmjs/stargate'
|
|
10
|
-
import { CheqdQuerier } from './querier'
|
|
11
|
-
import { Tendermint34Client } from '@cosmjs/tendermint-rpc'
|
|
12
|
-
|
|
13
|
-
export interface ICheqdSDKOptions {
|
|
14
|
-
modules: AbstractCheqdSDKModule[]
|
|
15
|
-
querierExtensions?: Record<string, any>[]
|
|
16
|
-
rpcUrl: string
|
|
17
|
-
network?: CheqdNetwork
|
|
18
|
-
gasPrice?: GasPrice
|
|
19
|
-
authorizedMethods?: string[]
|
|
20
|
-
readonly wallet: OfflineSigner
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type DefaultCheqdSDKModules = MinimalImportableDIDModule & MinimalImportableResourceModule
|
|
24
|
-
|
|
25
|
-
export interface CheqdSDK extends DefaultCheqdSDKModules {}
|
|
26
|
-
|
|
27
|
-
export class CheqdSDK {
|
|
28
|
-
methods: IModuleMethodMap
|
|
29
|
-
signer: CheqdSigningStargateClient
|
|
30
|
-
querier: CheqdQuerier & DidExtension & ResourceExtension
|
|
31
|
-
options: ICheqdSDKOptions
|
|
32
|
-
private protectedMethods: string[] = ['constructor', 'build', 'loadModules', 'loadRegistry']
|
|
33
|
-
|
|
34
|
-
constructor(options: ICheqdSDKOptions) {
|
|
35
|
-
if (!options?.wallet) {
|
|
36
|
-
throw new Error('No wallet provided')
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
this.options = {
|
|
40
|
-
authorizedMethods: [],
|
|
41
|
-
network: CheqdNetwork.Testnet,
|
|
42
|
-
...options
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
this.methods = {}
|
|
46
|
-
this.signer = new CheqdSigningStargateClient(undefined, this.options.wallet, {})
|
|
47
|
-
this.querier = <any> new QueryClient({} as unknown as Tendermint34Client)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
async execute<P = any, R = any>(method: string, ...params: P[]): Promise<R> {
|
|
51
|
-
if (!Object.keys(this.methods).includes(method)) {
|
|
52
|
-
throw new Error(`Method ${method} is not authorized`)
|
|
53
|
-
}
|
|
54
|
-
return await this.methods[method](...params, { sdk: this } as IContext)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private async loadModules(modules: AbstractCheqdSDKModule[]): Promise<CheqdSDK> {
|
|
58
|
-
this.options.modules = this.options.modules.map((module: any) => instantiateCheqdSDKModule(module, this.signer, this.querier, { sdk: this } as IContext) as unknown as AbstractCheqdSDKModule)
|
|
59
|
-
|
|
60
|
-
const methods = applyMixins(this, modules)
|
|
61
|
-
this.methods = { ...this.methods, ...filterUnauthorizedMethods(methods, this.options.authorizedMethods || [], this.protectedMethods) }
|
|
62
|
-
|
|
63
|
-
for (const method of Object.keys(this.methods)) {
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
this[method] = async (...params: any[]) => {
|
|
66
|
-
return await this.execute(method, ...params)
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return this
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
private loadRegistry(): Registry {
|
|
74
|
-
const registryTypes = this.options.modules.map((module: any) => instantiateCheqdSDKModuleRegistryTypes(module)).reduce((acc, types) => {
|
|
75
|
-
return [...acc, ...types]
|
|
76
|
-
})
|
|
77
|
-
return createDefaultCheqdRegistry(registryTypes)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
private async loadQuerierExtensions(): Promise<CheqdQuerier & DidExtension & ResourceExtension> {
|
|
81
|
-
const querierExtensions = this.options.modules.map((module: any) => instantiateCheqdSDKModuleQuerierExtensionSetup(module))
|
|
82
|
-
const querier = await CheqdQuerier.connectWithExtensions(this.options.rpcUrl, ...querierExtensions)
|
|
83
|
-
return <CheqdQuerier & DidExtension & ResourceExtension>querier
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
async build(): Promise<CheqdSDK> {
|
|
87
|
-
const registry = this.loadRegistry()
|
|
88
|
-
|
|
89
|
-
this.querier = await this.loadQuerierExtensions()
|
|
90
|
-
this.signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
91
|
-
this.options.rpcUrl,
|
|
92
|
-
this.options.wallet,
|
|
93
|
-
{
|
|
94
|
-
registry,
|
|
95
|
-
gasPrice: this.options?.gasPrice,
|
|
96
|
-
}
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
return await this.loadModules(this.options.modules)
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export function filterUnauthorizedMethods(methods: IModuleMethodMap, authorizedMethods: string[], protectedMethods: string[]): IModuleMethodMap {
|
|
104
|
-
let _methods = Object.keys(methods)
|
|
105
|
-
if (authorizedMethods.length === 0)
|
|
106
|
-
return _methods
|
|
107
|
-
.filter(method => !protectedMethods.includes(method))
|
|
108
|
-
.reduce((acc, method) => ({ ...acc, [method]: methods[method] }), {})
|
|
109
|
-
|
|
110
|
-
return _methods
|
|
111
|
-
.filter(method => authorizedMethods.includes(method) && !protectedMethods.includes(method))
|
|
112
|
-
.reduce((acc, method) => ({ ...acc, [method]: methods[method] }), {})
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export async function createCheqdSDK(options: ICheqdSDKOptions): Promise<CheqdSDK> {
|
|
116
|
-
return await (new CheqdSDK(options)).build()
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export { DIDModule, ResourceModule }
|
|
120
|
-
export { createSignInputsFromImportableEd25519Key }
|
|
121
|
-
export {
|
|
122
|
-
createKeyPairRaw,
|
|
123
|
-
createKeyPairBase64,
|
|
124
|
-
createKeyPairHex,
|
|
125
|
-
createVerificationKeys,
|
|
126
|
-
createDidVerificationMethod,
|
|
127
|
-
createDidPayload
|
|
128
|
-
} from './utils'
|
package/src/modules/_.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { GeneratedType } from "@cosmjs/proto-signing"
|
|
2
|
-
import { QueryClient } from "@cosmjs/stargate"
|
|
3
|
-
import { CheqdSigningStargateClient } from '../signer'
|
|
4
|
-
import { IModuleMethodMap, QueryExtensionSetup } from '../types';
|
|
5
|
-
import { CheqdQuerier } from "../querier";
|
|
6
|
-
|
|
7
|
-
export abstract class AbstractCheqdSDKModule {
|
|
8
|
-
_signer: CheqdSigningStargateClient
|
|
9
|
-
methods: IModuleMethodMap = {}
|
|
10
|
-
readonly querier: CheqdQuerier
|
|
11
|
-
readonly _protectedMethods: string[] = ['constructor', 'getRegistryTypes', 'getQuerierExtensionSetup']
|
|
12
|
-
static readonly registryTypes: Iterable<[string, GeneratedType]> = []
|
|
13
|
-
static readonly querierExtensionSetup: QueryExtensionSetup<any> = (base: QueryClient) => ({})
|
|
14
|
-
|
|
15
|
-
constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier) {
|
|
16
|
-
if (!signer) {
|
|
17
|
-
throw new Error("signer is required")
|
|
18
|
-
}
|
|
19
|
-
this._signer = signer
|
|
20
|
-
this.querier = querier
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
abstract getRegistryTypes(): Iterable<[string, GeneratedType]>
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
type ProtectedMethods<T extends AbstractCheqdSDKModule, K extends keyof T> = T[K] extends string[] ? T[K][number] : T[K]
|
|
27
|
-
|
|
28
|
-
export type MinimalImportableCheqdSDKModule<T extends AbstractCheqdSDKModule> = Omit<T, '_signer' | '_protectedMethods' | 'registryTypes' | 'querierExtensionSetup' | 'getRegistryTypes' | 'getQuerierExtensionSetup'>
|
|
29
|
-
|
|
30
|
-
export function instantiateCheqdSDKModule<T extends new (...args: any[]) => T>(module: T, ...args: ConstructorParameters<T>): T {
|
|
31
|
-
return new module(...args)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function instantiateCheqdSDKModuleRegistryTypes(module: any): Iterable<[string, GeneratedType]> {
|
|
35
|
-
return module.registryTypes ?? []
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function instantiateCheqdSDKModuleQuerierExtensionSetup(module: any): QueryExtensionSetup<any> {
|
|
39
|
-
return module.querierExtensionSetup ?? {}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function applyMixins(derivedCtor: any, constructors: any[]): IModuleMethodMap {
|
|
43
|
-
let methods: IModuleMethodMap = {}
|
|
44
|
-
|
|
45
|
-
constructors.forEach((baseCtor) => {
|
|
46
|
-
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
|
47
|
-
const property = baseCtor.prototype[name]
|
|
48
|
-
if (typeof property !== 'function' || derivedCtor.hasOwnProperty(name) || derivedCtor?.protectedMethods.includes(name) || baseCtor.prototype?._protectedMethods?.includes(name)) return
|
|
49
|
-
|
|
50
|
-
methods = { ...methods, [name]: property }
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
return methods
|
|
55
|
-
}
|