@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.
Files changed (127) hide show
  1. package/README.md +33 -6
  2. package/build/{index.d.ts → cjs/index.d.ts} +8 -3
  3. package/build/cjs/index.d.ts.map +1 -0
  4. package/build/cjs/index.js +144 -0
  5. package/build/cjs/index.js.map +1 -0
  6. package/build/{modules → cjs/modules}/_.d.ts +1 -1
  7. package/build/cjs/modules/_.d.ts.map +1 -0
  8. package/build/{modules → cjs/modules}/_.js +3 -0
  9. package/build/cjs/modules/_.js.map +1 -0
  10. package/build/{modules → cjs/modules}/did.d.ts +4 -2
  11. package/build/cjs/modules/did.d.ts.map +1 -0
  12. package/build/{modules → cjs/modules}/did.js +42 -25
  13. package/build/cjs/modules/did.js.map +1 -0
  14. package/build/{modules → cjs/modules}/resource.d.ts +2 -2
  15. package/build/cjs/modules/resource.d.ts.map +1 -0
  16. package/build/{modules → cjs/modules}/resource.js +13 -5
  17. package/build/cjs/modules/resource.js.map +1 -0
  18. package/build/cjs/querier.d.ts.map +1 -0
  19. package/build/cjs/querier.js.map +1 -0
  20. package/build/cjs/registry.d.ts.map +1 -0
  21. package/build/cjs/registry.js.map +1 -0
  22. package/build/cjs/signer.d.ts.map +1 -0
  23. package/build/cjs/signer.js.map +1 -0
  24. package/build/{types.d.ts → cjs/types.d.ts} +1 -1
  25. package/build/cjs/types.d.ts.map +1 -0
  26. package/build/cjs/types.js.map +1 -0
  27. package/build/cjs/utils.d.ts.map +1 -0
  28. package/build/{utils.js → cjs/utils.js} +2 -5
  29. package/build/cjs/utils.js.map +1 -0
  30. package/build/types/index.d.ts +45 -0
  31. package/build/types/index.d.ts.map +1 -0
  32. package/build/types/modules/_.d.ts +20 -0
  33. package/build/types/modules/_.d.ts.map +1 -0
  34. package/build/types/modules/did.d.ts +109 -0
  35. package/build/types/modules/did.d.ts.map +1 -0
  36. package/build/types/modules/resource.d.ts +62 -0
  37. package/build/types/modules/resource.d.ts.map +1 -0
  38. package/build/types/querier.d.ts +11 -0
  39. package/build/types/querier.d.ts.map +1 -0
  40. package/build/types/registry.d.ts +4 -0
  41. package/build/types/registry.d.ts.map +1 -0
  42. package/build/types/signer.d.ts +36 -0
  43. package/build/types/signer.d.ts.map +1 -0
  44. package/build/types/types.d.ts +80 -0
  45. package/build/types/types.d.ts.map +1 -0
  46. package/build/types/utils.d.ts +18 -0
  47. package/build/types/utils.d.ts.map +1 -0
  48. package/package.json +48 -25
  49. package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -74
  50. package/.github/ISSUE_TEMPLATE/config.yml +0 -14
  51. package/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -27
  52. package/.github/dependabot.yml +0 -42
  53. package/.github/linters/.commitlint.rules.js +0 -37
  54. package/.github/linters/.eslintrc.json +0 -18
  55. package/.github/linters/.markdown-lint.yml +0 -139
  56. package/.github/linters/mlc_config.json +0 -13
  57. package/.github/workflows/build.yml +0 -30
  58. package/.github/workflows/cleanup-actions.yml +0 -45
  59. package/.github/workflows/cleanup-cache-automatic.yml +0 -24
  60. package/.github/workflows/cleanup-cache-manual.yml +0 -21
  61. package/.github/workflows/codeql.yml +0 -40
  62. package/.github/workflows/dispatch.yml +0 -30
  63. package/.github/workflows/lint.yml +0 -51
  64. package/.github/workflows/pull-request.yml +0 -33
  65. package/.github/workflows/release.yml +0 -42
  66. package/.github/workflows/test.yml +0 -66
  67. package/.releaserc.json +0 -56
  68. package/CHANGELOG.md +0 -256
  69. package/CODE_OF_CONDUCT.md +0 -81
  70. package/NOTICE.md +0 -10
  71. package/SECURITY.md +0 -12
  72. package/build/index.d.ts.map +0 -1
  73. package/build/index.js +0 -97
  74. package/build/index.js.map +0 -1
  75. package/build/modules/_.d.ts.map +0 -1
  76. package/build/modules/_.js.map +0 -1
  77. package/build/modules/did.d.ts.map +0 -1
  78. package/build/modules/did.js.map +0 -1
  79. package/build/modules/resource.d.ts.map +0 -1
  80. package/build/modules/resource.js.map +0 -1
  81. package/build/querier.d.ts.map +0 -1
  82. package/build/querier.js.map +0 -1
  83. package/build/registry.d.ts.map +0 -1
  84. package/build/registry.js.map +0 -1
  85. package/build/signer.d.ts.map +0 -1
  86. package/build/signer.js.map +0 -1
  87. package/build/types.d.ts.map +0 -1
  88. package/build/types.js.map +0 -1
  89. package/build/utils.d.ts.map +0 -1
  90. package/build/utils.js.map +0 -1
  91. package/docker/Dockerfile +0 -55
  92. package/docker/entrypoint.sh +0 -58
  93. package/docker/localnet/build-latest.env +0 -7
  94. package/docker/localnet/container-env/observer-0.env +0 -13
  95. package/docker/localnet/container-env/seed-0.env +0 -17
  96. package/docker/localnet/container-env/validator-0.env +0 -13
  97. package/docker/localnet/container-env/validator-1.env +0 -13
  98. package/docker/localnet/container-env/validator-2.env +0 -13
  99. package/docker/localnet/container-env/validator-3.env +0 -13
  100. package/docker/localnet/docker-compose.yml +0 -281
  101. package/docker/localnet/gen-network-config.sh +0 -259
  102. package/docker/localnet/import-keys.sh +0 -31
  103. package/jest.config.js +0 -6
  104. package/src/index.ts +0 -128
  105. package/src/modules/_.ts +0 -55
  106. package/src/modules/did.ts +0 -564
  107. package/src/modules/resource.ts +0 -213
  108. package/src/querier.ts +0 -33
  109. package/src/registry.ts +0 -15
  110. package/src/signer.ts +0 -258
  111. package/src/types.ts +0 -101
  112. package/src/utils.ts +0 -243
  113. package/tests/index.test.ts +0 -135
  114. package/tests/modules/did.test.ts +0 -965
  115. package/tests/modules/resource.test.ts +0 -785
  116. package/tests/signer.test.ts +0 -179
  117. package/tests/testutils.test.ts +0 -24
  118. package/tests/utils.test.ts +0 -66
  119. package/tsconfig.json +0 -80
  120. /package/build/{querier.d.ts → cjs/querier.d.ts} +0 -0
  121. /package/build/{querier.js → cjs/querier.js} +0 -0
  122. /package/build/{registry.d.ts → cjs/registry.d.ts} +0 -0
  123. /package/build/{registry.js → cjs/registry.js} +0 -0
  124. /package/build/{signer.d.ts → cjs/signer.d.ts} +0 -0
  125. /package/build/{signer.js → cjs/signer.js} +0 -0
  126. /package/build/{types.js → cjs/types.js} +0 -0
  127. /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
- }