@cheqd/sdk 2.1.0 → 3.0.0-develop.2
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/.github/linters/{.commitlint.rules.js → .commitlint.rules.cjs} +0 -0
- package/.github/workflows/cleanup-cache-manual.yml +1 -1
- package/.github/workflows/pull-request.yml +2 -2
- package/CHANGELOG.md +9 -3
- package/build/cjs/index.d.ts +45 -0
- 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 +3 -3
- package/build/cjs/modules/_.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/_.js +0 -0
- package/build/cjs/modules/_.js.map +1 -0
- package/build/{modules → cjs/modules}/did.d.ts +7 -5
- package/build/cjs/modules/did.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/did.js +45 -37
- package/build/cjs/modules/did.js.map +1 -0
- package/build/{modules → cjs/modules}/resource.d.ts +6 -6
- package/build/cjs/modules/resource.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/resource.js +14 -14
- package/build/cjs/modules/resource.js.map +1 -0
- package/build/{querier.d.ts → cjs/querier.d.ts} +1 -1
- package/build/cjs/querier.d.ts.map +1 -0
- package/build/{querier.js → cjs/querier.js} +0 -0
- package/build/cjs/querier.js.map +1 -0
- package/build/{registry.d.ts → cjs/registry.d.ts} +0 -0
- package/build/cjs/registry.d.ts.map +1 -0
- package/build/{registry.js → cjs/registry.js} +0 -0
- package/build/cjs/registry.js.map +1 -0
- package/build/{signer.d.ts → cjs/signer.d.ts} +5 -5
- package/build/cjs/signer.d.ts.map +1 -0
- package/build/{signer.js → cjs/signer.js} +10 -10
- package/build/cjs/signer.js.map +1 -0
- package/build/{types.d.ts → cjs/types.d.ts} +3 -3
- package/build/cjs/types.d.ts.map +1 -0
- package/build/{types.js → cjs/types.js} +0 -0
- package/build/cjs/types.js.map +1 -0
- package/build/{utils.d.ts → cjs/utils.d.ts} +1 -1
- package/build/cjs/utils.d.ts.map +1 -0
- package/build/{utils.js → cjs/utils.js} +18 -21
- package/build/cjs/utils.js.map +1 -0
- package/build/esm/index.d.ts +45 -0
- package/build/esm/index.d.ts.map +1 -0
- package/build/esm/index.js +89 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/modules/_.d.ts +20 -0
- package/build/esm/modules/_.d.ts.map +1 -0
- package/build/esm/modules/_.js +37 -0
- package/build/esm/modules/_.js.map +1 -0
- package/build/esm/modules/did.d.ts +109 -0
- package/build/esm/modules/did.d.ts.map +1 -0
- package/build/esm/modules/did.js +432 -0
- package/build/esm/modules/did.js.map +1 -0
- package/build/esm/modules/resource.d.ts +62 -0
- package/build/esm/modules/resource.d.ts.map +1 -0
- package/build/esm/modules/resource.js +156 -0
- package/build/esm/modules/resource.js.map +1 -0
- package/build/esm/querier.d.ts +11 -0
- package/build/esm/querier.d.ts.map +1 -0
- package/build/esm/querier.js +27 -0
- package/build/esm/querier.js.map +1 -0
- package/build/esm/registry.d.ts +4 -0
- package/build/esm/registry.d.ts.map +1 -0
- package/build/esm/registry.js +9 -0
- package/build/esm/registry.js.map +1 -0
- package/build/esm/signer.d.ts +36 -0
- package/build/esm/signer.d.ts.map +1 -0
- package/build/esm/signer.js +197 -0
- package/build/esm/signer.js.map +1 -0
- package/build/esm/types.d.ts +80 -0
- package/build/esm/types.d.ts.map +1 -0
- package/build/esm/types.js +22 -0
- package/build/esm/types.js.map +1 -0
- package/build/esm/utils.d.ts +18 -0
- package/build/esm/utils.d.ts.map +1 -0
- package/build/esm/utils.js +196 -0
- package/build/esm/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/jest.config.cjs +19 -0
- package/package.json +44 -21
- package/src/index.ts +77 -13
- package/src/modules/_.ts +6 -3
- package/src/modules/did.ts +36 -8
- package/src/modules/resource.ts +34 -9
- package/src/querier.ts +4 -1
- package/src/registry.ts +1 -3
- package/src/signer.ts +50 -11
- package/src/types.ts +14 -5
- package/src/utils.ts +12 -9
- package/tests/index.test.ts +24 -5
- package/tests/modules/did.test.ts +25 -5
- package/tests/modules/resource.test.ts +214 -8
- package/tests/signer.test.ts +29 -6
- package/tests/testutils.test.ts +6 -1
- package/tests/utils.test.ts +14 -3
- package/tsconfig.cjs.json +8 -0
- package/tsconfig.esm.json +8 -0
- package/tsconfig.json +9 -5
- package/tsconfig.types.json +10 -0
- package/build/index.d.ts +0 -40
- 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/jest.config.js +0 -6
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from './_.js';
|
|
2
|
+
import { CheqdSigningStargateClient } from "../signer.js";
|
|
3
|
+
import { EncodeObject, GeneratedType } from "@cosmjs/proto-signing";
|
|
4
|
+
import { DidStdFee, IContext, ISignInputs, QueryExtensionSetup } from '../types.js';
|
|
5
|
+
import { Metadata, MsgCreateResource, MsgCreateResourcePayload, QueryCollectionResourcesResponse, ResourceWithMetadata } from "@cheqd/ts-proto/cheqd/resource/v2/index.js";
|
|
6
|
+
import { DeliverTxResponse, QueryClient } from "@cosmjs/stargate";
|
|
7
|
+
import { SignInfo } from "@cheqd/ts-proto/cheqd/did/v2/index.js";
|
|
8
|
+
import { CheqdQuerier } from '../querier.js';
|
|
9
|
+
export declare const defaultResourceExtensionKey: "resource";
|
|
10
|
+
export declare const protobufLiterals: {
|
|
11
|
+
readonly MsgCreateResource: "MsgCreateResource";
|
|
12
|
+
readonly MsgCreateResourceResponse: "MsgCreateResourceResponse";
|
|
13
|
+
};
|
|
14
|
+
export declare const typeUrlMsgCreateResource: string;
|
|
15
|
+
export declare const typeUrlMsgCreateResourceResponse: string;
|
|
16
|
+
export interface MsgCreateResourceEncodeObject extends EncodeObject {
|
|
17
|
+
readonly typeUrl: typeof typeUrlMsgCreateResource;
|
|
18
|
+
readonly value: Partial<MsgCreateResource>;
|
|
19
|
+
}
|
|
20
|
+
export declare function isMsgCreateResourceEncodeObject(obj: EncodeObject): obj is MsgCreateResourceEncodeObject;
|
|
21
|
+
export type MinimalImportableResourceModule = MinimalImportableCheqdSDKModule<ResourceModule>;
|
|
22
|
+
export type ResourceExtension = {
|
|
23
|
+
readonly [defaultResourceExtensionKey]: {
|
|
24
|
+
readonly resource: (collectionId: string, resourceId: string) => Promise<ResourceWithMetadata>;
|
|
25
|
+
readonly resourceMetadata: (collectionId: string, resourceId: string) => Promise<Metadata>;
|
|
26
|
+
readonly collectionResources: (collectionId: string, paginationKey?: Uint8Array) => Promise<QueryCollectionResourcesResponse>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const setupResourceExtension: (base: QueryClient) => ResourceExtension;
|
|
30
|
+
export declare class ResourceModule extends AbstractCheqdSDKModule {
|
|
31
|
+
static readonly registryTypes: Iterable<[string, GeneratedType]>;
|
|
32
|
+
static readonly baseMinimalDenom: "ncheq";
|
|
33
|
+
static readonly fees: {
|
|
34
|
+
readonly DefaultCreateResourceImageFee: {
|
|
35
|
+
readonly amount: "10000000000";
|
|
36
|
+
readonly denom: "ncheq";
|
|
37
|
+
};
|
|
38
|
+
readonly DefaultCreateResourceJsonFee: {
|
|
39
|
+
readonly amount: "2500000000";
|
|
40
|
+
readonly denom: "ncheq";
|
|
41
|
+
};
|
|
42
|
+
readonly DefaultCreateResourceDefaultFee: {
|
|
43
|
+
readonly amount: "5000000000";
|
|
44
|
+
readonly denom: "ncheq";
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
static readonly querierExtensionSetup: QueryExtensionSetup<ResourceExtension>;
|
|
48
|
+
readonly querier: CheqdQuerier & ResourceExtension;
|
|
49
|
+
constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier & ResourceExtension);
|
|
50
|
+
getRegistryTypes(): Iterable<[string, GeneratedType]>;
|
|
51
|
+
getQuerierExtensionSetup(): QueryExtensionSetup<ResourceExtension>;
|
|
52
|
+
static signPayload(payload: MsgCreateResourcePayload, signInputs: ISignInputs[] | SignInfo[]): Promise<MsgCreateResource>;
|
|
53
|
+
createLinkedResourceTx(signInputs: ISignInputs[] | SignInfo[], resourcePayload: Partial<MsgCreateResourcePayload>, address: string, fee?: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
|
|
54
|
+
queryLinkedResource(collectionId: string, resourceId: string, context?: IContext): Promise<ResourceWithMetadata>;
|
|
55
|
+
queryLinkedResourceMetadata(collectionId: string, resourceId: string, context?: IContext): Promise<Metadata>;
|
|
56
|
+
queryLinkedResources(collectionId: string, context?: IContext): Promise<QueryCollectionResourcesResponse>;
|
|
57
|
+
static readMimeType(content: Uint8Array): Promise<string>;
|
|
58
|
+
static generateCreateResourceImageFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
59
|
+
static generateCreateResourceJsonFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
60
|
+
static generateCreateResourceDefaultFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/modules/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { AbstractCheqdSDKModule } from './_.js';
|
|
2
|
+
import { CheqdSigningStargateClient } from "../signer.js";
|
|
3
|
+
import { ISignInputs } from '../types.js';
|
|
4
|
+
import { MsgCreateResource, MsgCreateResourcePayload, MsgCreateResourceResponse, QueryClientImpl, protobufPackage } from "@cheqd/ts-proto/cheqd/resource/v2/index.js";
|
|
5
|
+
import { createPagination, createProtobufRpcClient } from "@cosmjs/stargate";
|
|
6
|
+
import { fromBuffer } from "file-type";
|
|
7
|
+
import { assert } from '@cosmjs/utils';
|
|
8
|
+
export const defaultResourceExtensionKey = 'resource';
|
|
9
|
+
export const protobufLiterals = {
|
|
10
|
+
MsgCreateResource: 'MsgCreateResource',
|
|
11
|
+
MsgCreateResourceResponse: 'MsgCreateResourceResponse'
|
|
12
|
+
};
|
|
13
|
+
export const typeUrlMsgCreateResource = `/${protobufPackage}.${protobufLiterals.MsgCreateResource}`;
|
|
14
|
+
export const typeUrlMsgCreateResourceResponse = `/${protobufPackage}.${protobufLiterals.MsgCreateResourceResponse}`;
|
|
15
|
+
export function isMsgCreateResourceEncodeObject(obj) {
|
|
16
|
+
return obj.typeUrl === typeUrlMsgCreateResource;
|
|
17
|
+
}
|
|
18
|
+
export const setupResourceExtension = (base) => {
|
|
19
|
+
const rpc = createProtobufRpcClient(base);
|
|
20
|
+
const queryService = new QueryClientImpl(rpc);
|
|
21
|
+
return {
|
|
22
|
+
[defaultResourceExtensionKey]: {
|
|
23
|
+
resource: async (collectionId, resourceId) => {
|
|
24
|
+
const { resource } = await queryService.Resource({ collectionId, id: resourceId });
|
|
25
|
+
assert(resource);
|
|
26
|
+
return resource;
|
|
27
|
+
},
|
|
28
|
+
resourceMetadata: async (collectionId, resourceId) => {
|
|
29
|
+
const { resource } = await queryService.ResourceMetadata({ collectionId, id: resourceId });
|
|
30
|
+
assert(resource);
|
|
31
|
+
return resource;
|
|
32
|
+
},
|
|
33
|
+
collectionResources: async (collectionId, paginationKey) => {
|
|
34
|
+
const response = await queryService.CollectionResources({ collectionId, pagination: createPagination(paginationKey) });
|
|
35
|
+
return response;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export class ResourceModule extends AbstractCheqdSDKModule {
|
|
41
|
+
static registryTypes = [
|
|
42
|
+
[typeUrlMsgCreateResource, MsgCreateResource],
|
|
43
|
+
[typeUrlMsgCreateResourceResponse, MsgCreateResourceResponse]
|
|
44
|
+
];
|
|
45
|
+
static baseMinimalDenom = 'ncheq';
|
|
46
|
+
static fees = {
|
|
47
|
+
DefaultCreateResourceImageFee: { amount: '10000000000', denom: ResourceModule.baseMinimalDenom },
|
|
48
|
+
DefaultCreateResourceJsonFee: { amount: '2500000000', denom: ResourceModule.baseMinimalDenom },
|
|
49
|
+
DefaultCreateResourceDefaultFee: { amount: '5000000000', denom: ResourceModule.baseMinimalDenom },
|
|
50
|
+
};
|
|
51
|
+
static querierExtensionSetup = setupResourceExtension;
|
|
52
|
+
querier;
|
|
53
|
+
constructor(signer, querier) {
|
|
54
|
+
super(signer, querier);
|
|
55
|
+
this.querier = querier;
|
|
56
|
+
this.methods = {
|
|
57
|
+
createLinkedResourceTx: this.createLinkedResourceTx.bind(this),
|
|
58
|
+
queryLinkedResource: this.queryLinkedResource.bind(this),
|
|
59
|
+
queryLinkedResourceMetadata: this.queryLinkedResourceMetadata.bind(this),
|
|
60
|
+
queryLinkedResources: this.queryLinkedResources.bind(this),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
getRegistryTypes() {
|
|
64
|
+
return ResourceModule.registryTypes;
|
|
65
|
+
}
|
|
66
|
+
getQuerierExtensionSetup() {
|
|
67
|
+
return ResourceModule.querierExtensionSetup;
|
|
68
|
+
}
|
|
69
|
+
static async signPayload(payload, signInputs) {
|
|
70
|
+
const signBytes = MsgCreateResourcePayload.encode(payload).finish();
|
|
71
|
+
let signatures;
|
|
72
|
+
if (ISignInputs.isSignInput(signInputs)) {
|
|
73
|
+
signatures = await CheqdSigningStargateClient.signIdentityTx(signBytes, signInputs);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
signatures = signInputs;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
payload,
|
|
80
|
+
signatures
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async createLinkedResourceTx(signInputs, resourcePayload, address, fee, memo, context) {
|
|
84
|
+
if (!this._signer) {
|
|
85
|
+
this._signer = context.sdk.signer;
|
|
86
|
+
}
|
|
87
|
+
const payload = MsgCreateResourcePayload.fromPartial(resourcePayload);
|
|
88
|
+
const msg = await ResourceModule.signPayload(payload, signInputs);
|
|
89
|
+
const encObj = {
|
|
90
|
+
typeUrl: typeUrlMsgCreateResource,
|
|
91
|
+
value: msg
|
|
92
|
+
};
|
|
93
|
+
if (address === '') {
|
|
94
|
+
address = (await context.sdk.options.wallet.getAccounts())[0].address;
|
|
95
|
+
}
|
|
96
|
+
if (!fee) {
|
|
97
|
+
if (payload.data.length === 0) {
|
|
98
|
+
throw new Error('Linked resource data is empty');
|
|
99
|
+
}
|
|
100
|
+
fee = await async function () {
|
|
101
|
+
const mimeType = await ResourceModule.readMimeType(payload.data);
|
|
102
|
+
if (mimeType.startsWith('image/')) {
|
|
103
|
+
return await ResourceModule.generateCreateResourceImageFees(address);
|
|
104
|
+
}
|
|
105
|
+
if (mimeType.startsWith('application/json')) {
|
|
106
|
+
return await ResourceModule.generateCreateResourceJsonFees(address);
|
|
107
|
+
}
|
|
108
|
+
return await ResourceModule.generateCreateResourceDefaultFees(address);
|
|
109
|
+
}();
|
|
110
|
+
}
|
|
111
|
+
return this._signer.signAndBroadcast(address, [encObj], fee, memo);
|
|
112
|
+
}
|
|
113
|
+
async queryLinkedResource(collectionId, resourceId, context) {
|
|
114
|
+
return await this.querier[defaultResourceExtensionKey].resource(collectionId, resourceId);
|
|
115
|
+
}
|
|
116
|
+
async queryLinkedResourceMetadata(collectionId, resourceId, context) {
|
|
117
|
+
return await this.querier[defaultResourceExtensionKey].resourceMetadata(collectionId, resourceId);
|
|
118
|
+
}
|
|
119
|
+
async queryLinkedResources(collectionId, context) {
|
|
120
|
+
return await this.querier[defaultResourceExtensionKey].collectionResources(collectionId);
|
|
121
|
+
}
|
|
122
|
+
static async readMimeType(content) {
|
|
123
|
+
return (await fromBuffer(content))?.mime ?? 'application/octet-stream';
|
|
124
|
+
}
|
|
125
|
+
static async generateCreateResourceImageFees(feePayer, granter) {
|
|
126
|
+
return {
|
|
127
|
+
amount: [
|
|
128
|
+
ResourceModule.fees.DefaultCreateResourceImageFee
|
|
129
|
+
],
|
|
130
|
+
gas: '360000',
|
|
131
|
+
payer: feePayer,
|
|
132
|
+
granter: granter
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
static async generateCreateResourceJsonFees(feePayer, granter) {
|
|
136
|
+
return {
|
|
137
|
+
amount: [
|
|
138
|
+
ResourceModule.fees.DefaultCreateResourceJsonFee
|
|
139
|
+
],
|
|
140
|
+
gas: '360000',
|
|
141
|
+
payer: feePayer,
|
|
142
|
+
granter: granter
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
static async generateCreateResourceDefaultFees(feePayer, granter) {
|
|
146
|
+
return {
|
|
147
|
+
amount: [
|
|
148
|
+
ResourceModule.fees.DefaultCreateResourceDefaultFee
|
|
149
|
+
],
|
|
150
|
+
gas: '360000',
|
|
151
|
+
payer: feePayer,
|
|
152
|
+
granter: granter
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/modules/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { QueryClient } from "@cosmjs/stargate";
|
|
2
|
+
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
|
|
3
|
+
import { QueryExtensionSetup, CheqdExtensions } from "./types.js";
|
|
4
|
+
export declare class CheqdQuerier extends QueryClient {
|
|
5
|
+
constructor(tmClient: Tendermint34Client);
|
|
6
|
+
static connect(url: string): Promise<CheqdQuerier>;
|
|
7
|
+
static fromClient(client: Tendermint34Client): Promise<CheqdQuerier>;
|
|
8
|
+
static connectWithExtension(url: string, extension: QueryExtensionSetup<CheqdExtensions>): Promise<CheqdQuerier & CheqdExtensions>;
|
|
9
|
+
static connectWithExtensions(url: string, ...extensions: QueryExtensionSetup<CheqdExtensions>[]): Promise<CheqdQuerier & CheqdExtensions>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=querier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"querier.d.ts","sourceRoot":"","sources":["../../src/querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACH,mBAAmB,EACnB,eAAe,EAClB,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAa,SAAQ,WAAW;gBAC7B,QAAQ,EAAE,kBAAkB;WAI3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;WAK3C,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;WAI7D,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;WAK3H,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;CASlJ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { QueryClient } from "@cosmjs/stargate";
|
|
2
|
+
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
|
|
3
|
+
export class CheqdQuerier extends QueryClient {
|
|
4
|
+
constructor(tmClient) {
|
|
5
|
+
super(tmClient);
|
|
6
|
+
}
|
|
7
|
+
static async connect(url) {
|
|
8
|
+
const tmClient = await Tendermint34Client.connect(url);
|
|
9
|
+
return new CheqdQuerier(tmClient);
|
|
10
|
+
}
|
|
11
|
+
static async fromClient(client) {
|
|
12
|
+
return new CheqdQuerier(client);
|
|
13
|
+
}
|
|
14
|
+
static async connectWithExtension(url, extension) {
|
|
15
|
+
const tmClient = await Tendermint34Client.connect(url);
|
|
16
|
+
return CheqdQuerier.withExtensions(tmClient, extension);
|
|
17
|
+
}
|
|
18
|
+
static async connectWithExtensions(url, ...extensions) {
|
|
19
|
+
if (extensions.length === 1) {
|
|
20
|
+
return CheqdQuerier.connectWithExtension(url, extensions[0]);
|
|
21
|
+
}
|
|
22
|
+
const tmClient = await Tendermint34Client.connect(url);
|
|
23
|
+
const tupleLike = extensions;
|
|
24
|
+
return CheqdQuerier.withExtensions(tmClient, ...tupleLike);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=querier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"querier.js","sourceRoot":"","sources":["../../src/querier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,MAAM,OAAO,YAAa,SAAQ,WAAW;IACzC,YAAY,QAA4B;QACpC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW;QAC5B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAA0B;QAC9C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,SAA+C;QAC1F,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAW,EAAE,GAAG,UAAkD;QACjG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,YAAY,CAAC,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE;QAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,UAA0F,CAAC;QAC7G,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/D,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,aAAa,EACb,MAAM,uBAAuB,CAAA;AAI9B,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,QAAQ,CAGpG;AAED,eAAO,MAAM,aAAa,UAAqC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Registry, } from '@cosmjs/proto-signing';
|
|
2
|
+
import { defaultRegistryTypes } from '@cosmjs/stargate';
|
|
3
|
+
export function createDefaultCheqdRegistry(customTypes) {
|
|
4
|
+
if (!customTypes)
|
|
5
|
+
customTypes = [];
|
|
6
|
+
return new Registry([...defaultRegistryTypes, ...customTypes]);
|
|
7
|
+
}
|
|
8
|
+
export const CheqdRegistry = new Registry(defaultRegistryTypes);
|
|
9
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,GAER,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,UAAU,0BAA0B,CAAC,WAA+C;IACzF,IAAI,CAAC,WAAW;QAAE,WAAW,GAAG,EAAE,CAAC;IACnC,OAAO,IAAI,QAAQ,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,WAAW,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EncodeObject, OfflineSigner } from "@cosmjs/proto-signing";
|
|
2
|
+
import { DeliverTxResponse, GasPrice, HttpEndpoint, SigningStargateClient, SigningStargateClientOptions, SignerData } from "@cosmjs/stargate";
|
|
3
|
+
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
|
|
4
|
+
import { MsgCreateDidDocPayload, SignInfo, MsgUpdateDidDocPayload, MsgDeactivateDidDocPayload, VerificationMethod } from '@cheqd/ts-proto/cheqd/did/v2';
|
|
5
|
+
import { DidStdFee, ISignInputs, TSignerAlgo } from './types.js';
|
|
6
|
+
import { Signer } from 'did-jwt';
|
|
7
|
+
import { SignerInfo, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx.js';
|
|
8
|
+
import { SignMode } from 'cosmjs-types/cosmos/tx/signing/v1beta1/signing.js';
|
|
9
|
+
import { Any } from 'cosmjs-types/google/protobuf/any.js';
|
|
10
|
+
import { Coin } from 'cosmjs-types/cosmos/base/v1beta1/coin.js';
|
|
11
|
+
export declare function calculateDidFee(gasLimit: number, gasPrice: string | GasPrice): DidStdFee;
|
|
12
|
+
export declare function makeSignerInfos(signers: ReadonlyArray<{
|
|
13
|
+
readonly pubkey: Any;
|
|
14
|
+
readonly sequence: number;
|
|
15
|
+
}>, signMode: SignMode): SignerInfo[];
|
|
16
|
+
export declare function makeDidAuthInfoBytes(signers: ReadonlyArray<{
|
|
17
|
+
readonly pubkey: Any;
|
|
18
|
+
readonly sequence: number;
|
|
19
|
+
}>, feeAmount: readonly Coin[], gasLimit: number, feePayer: string, signMode?: SignMode): Uint8Array;
|
|
20
|
+
export declare class CheqdSigningStargateClient extends SigningStargateClient {
|
|
21
|
+
private didSigners;
|
|
22
|
+
private readonly _gasPrice;
|
|
23
|
+
private readonly _signer;
|
|
24
|
+
static connectWithSigner(endpoint: string | HttpEndpoint, signer: OfflineSigner, options?: SigningStargateClientOptions | undefined): Promise<CheqdSigningStargateClient>;
|
|
25
|
+
constructor(tmClient: Tendermint34Client | undefined, signer: OfflineSigner, options?: SigningStargateClientOptions);
|
|
26
|
+
signAndBroadcast(signerAddress: string, messages: readonly EncodeObject[], fee: DidStdFee | "auto" | number, memo?: string): Promise<DeliverTxResponse>;
|
|
27
|
+
sign(signerAddress: string, messages: readonly EncodeObject[], fee: DidStdFee, memo: string, explicitSignerData?: SignerData): Promise<TxRaw>;
|
|
28
|
+
private _signDirect;
|
|
29
|
+
checkDidSigners(verificationMethods?: Partial<VerificationMethod>[]): Promise<TSignerAlgo>;
|
|
30
|
+
getDidSigner(verificationMethodId: string, verificationMethods: Partial<VerificationMethod>[]): Promise<(secretKey: Uint8Array) => Signer>;
|
|
31
|
+
signcreateDidDocTx(signInputs: ISignInputs[], payload: MsgCreateDidDocPayload): Promise<SignInfo[]>;
|
|
32
|
+
signupdateDidDocTx(signInputs: ISignInputs[], payload: MsgUpdateDidDocPayload): Promise<SignInfo[]>;
|
|
33
|
+
signdeactivateDidDocTx(signInputs: ISignInputs[], payload: MsgDeactivateDidDocPayload, verificationMethod: VerificationMethod[]): Promise<SignInfo[]>;
|
|
34
|
+
static signIdentityTx(signBytes: Uint8Array, signInputs: ISignInputs[]): Promise<SignInfo[]>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { isOfflineDirectSigner, encodePubkey, makeSignDoc } from "@cosmjs/proto-signing";
|
|
2
|
+
import { SigningStargateClient, calculateFee } from "@cosmjs/stargate";
|
|
3
|
+
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
|
|
4
|
+
import { createDefaultCheqdRegistry } from "./registry.js";
|
|
5
|
+
import { MsgCreateDidDocPayload, MsgUpdateDidDocPayload, MsgDeactivateDidDocPayload } from '@cheqd/ts-proto/cheqd/did/v2';
|
|
6
|
+
import { VerificationMethods } from './types.js';
|
|
7
|
+
import { base64ToBytes, EdDSASigner, hexToBytes, ES256Signer, ES256KSigner } from 'did-jwt';
|
|
8
|
+
import { assert, assertDefined } from '@cosmjs/utils';
|
|
9
|
+
import { encodeSecp256k1Pubkey } from '@cosmjs/amino';
|
|
10
|
+
import { Int53 } from '@cosmjs/math';
|
|
11
|
+
import { fromBase64 } from '@cosmjs/encoding';
|
|
12
|
+
import { AuthInfo, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx.js';
|
|
13
|
+
import { SignMode } from 'cosmjs-types/cosmos/tx/signing/v1beta1/signing.js';
|
|
14
|
+
import Long from 'long';
|
|
15
|
+
export function calculateDidFee(gasLimit, gasPrice) {
|
|
16
|
+
return calculateFee(gasLimit, gasPrice);
|
|
17
|
+
}
|
|
18
|
+
export function makeSignerInfos(signers, signMode) {
|
|
19
|
+
return signers.map(({ pubkey, sequence }) => ({
|
|
20
|
+
publicKey: pubkey,
|
|
21
|
+
modeInfo: {
|
|
22
|
+
single: { mode: signMode },
|
|
23
|
+
},
|
|
24
|
+
sequence: Long.fromNumber(sequence),
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
export function makeDidAuthInfoBytes(signers, feeAmount, gasLimit, feePayer, signMode = SignMode.SIGN_MODE_DIRECT) {
|
|
28
|
+
const authInfo = {
|
|
29
|
+
signerInfos: makeSignerInfos(signers, signMode),
|
|
30
|
+
fee: {
|
|
31
|
+
amount: [...feeAmount],
|
|
32
|
+
gasLimit: Long.fromNumber(gasLimit),
|
|
33
|
+
payer: feePayer
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
return AuthInfo.encode(AuthInfo.fromPartial(authInfo)).finish();
|
|
37
|
+
}
|
|
38
|
+
export class CheqdSigningStargateClient extends SigningStargateClient {
|
|
39
|
+
didSigners = {};
|
|
40
|
+
_gasPrice;
|
|
41
|
+
_signer;
|
|
42
|
+
static async connectWithSigner(endpoint, signer, options) {
|
|
43
|
+
const tmClient = await Tendermint34Client.connect(endpoint);
|
|
44
|
+
return new CheqdSigningStargateClient(tmClient, signer, {
|
|
45
|
+
registry: options?.registry ? options.registry : createDefaultCheqdRegistry(),
|
|
46
|
+
...options
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
constructor(tmClient, signer, options = {}) {
|
|
50
|
+
super(tmClient, signer, options);
|
|
51
|
+
this._signer = signer;
|
|
52
|
+
if (options.gasPrice)
|
|
53
|
+
this._gasPrice = options.gasPrice;
|
|
54
|
+
}
|
|
55
|
+
async signAndBroadcast(signerAddress, messages, fee, memo = "") {
|
|
56
|
+
let usedFee;
|
|
57
|
+
if (fee == "auto" || typeof fee === "number") {
|
|
58
|
+
assertDefined(this._gasPrice, "Gas price must be set in the client options when auto gas is used.");
|
|
59
|
+
const gasEstimation = await this.simulate(signerAddress, messages, memo);
|
|
60
|
+
const multiplier = typeof fee === "number" ? fee : 1.3;
|
|
61
|
+
usedFee = calculateDidFee(Math.round(gasEstimation * multiplier), this._gasPrice);
|
|
62
|
+
usedFee.payer = signerAddress;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
usedFee = fee;
|
|
66
|
+
assertDefined(usedFee.payer, "Payer address must be set when fee is not auto.");
|
|
67
|
+
signerAddress = usedFee.payer;
|
|
68
|
+
}
|
|
69
|
+
const txRaw = await this.sign(signerAddress, messages, usedFee, memo);
|
|
70
|
+
const txBytes = TxRaw.encode(txRaw).finish();
|
|
71
|
+
return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);
|
|
72
|
+
}
|
|
73
|
+
async sign(signerAddress, messages, fee, memo, explicitSignerData) {
|
|
74
|
+
let signerData;
|
|
75
|
+
if (explicitSignerData) {
|
|
76
|
+
signerData = explicitSignerData;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const { accountNumber, sequence } = await this.getSequence(signerAddress);
|
|
80
|
+
const chainId = await this.getChainId();
|
|
81
|
+
signerData = {
|
|
82
|
+
accountNumber: accountNumber,
|
|
83
|
+
sequence: sequence,
|
|
84
|
+
chainId: chainId,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return this._signDirect(signerAddress, messages, fee, memo, signerData);
|
|
88
|
+
}
|
|
89
|
+
async _signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {
|
|
90
|
+
assert(isOfflineDirectSigner(this._signer));
|
|
91
|
+
const accountFromSigner = (await this._signer.getAccounts()).find((account) => account.address === signerAddress);
|
|
92
|
+
if (!accountFromSigner) {
|
|
93
|
+
throw new Error("Failed to retrieve account from signer");
|
|
94
|
+
}
|
|
95
|
+
const pubkey = encodePubkey(encodeSecp256k1Pubkey(accountFromSigner.pubkey));
|
|
96
|
+
const txBodyEncodeObject = {
|
|
97
|
+
typeUrl: "/cosmos.tx.v1beta1.TxBody",
|
|
98
|
+
value: {
|
|
99
|
+
messages: messages,
|
|
100
|
+
memo: memo,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
const txBodyBytes = this.registry.encode(txBodyEncodeObject);
|
|
104
|
+
const gasLimit = Int53.fromString(fee.gas).toNumber();
|
|
105
|
+
const authInfoBytes = makeDidAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit, fee.payer);
|
|
106
|
+
const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber);
|
|
107
|
+
const { signature, signed } = await this._signer.signDirect(signerAddress, signDoc);
|
|
108
|
+
return TxRaw.fromPartial({
|
|
109
|
+
bodyBytes: signed.bodyBytes,
|
|
110
|
+
authInfoBytes: signed.authInfoBytes,
|
|
111
|
+
signatures: [fromBase64(signature.signature)],
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async checkDidSigners(verificationMethods = []) {
|
|
115
|
+
if (verificationMethods.length === 0) {
|
|
116
|
+
throw new Error('No verification methods provided');
|
|
117
|
+
}
|
|
118
|
+
verificationMethods.forEach((verificationMethod) => {
|
|
119
|
+
if (!Object.values(VerificationMethods).includes(verificationMethod.verificationMethodType ?? '')) {
|
|
120
|
+
throw new Error(`Unsupported verification method type: ${verificationMethod.verificationMethodType}`);
|
|
121
|
+
}
|
|
122
|
+
if (!this.didSigners[verificationMethod.verificationMethodType ?? '']) {
|
|
123
|
+
this.didSigners[verificationMethod.verificationMethodType ?? ''] = EdDSASigner;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return this.didSigners;
|
|
127
|
+
}
|
|
128
|
+
async getDidSigner(verificationMethodId, verificationMethods) {
|
|
129
|
+
await this.checkDidSigners(verificationMethods);
|
|
130
|
+
const verificationMethod = verificationMethods.find(method => method.id === verificationMethodId)?.verificationMethodType;
|
|
131
|
+
if (!verificationMethod) {
|
|
132
|
+
throw new Error(`Verification method for ${verificationMethodId} not found`);
|
|
133
|
+
}
|
|
134
|
+
return this.didSigners[verificationMethod];
|
|
135
|
+
}
|
|
136
|
+
async signcreateDidDocTx(signInputs, payload) {
|
|
137
|
+
await this.checkDidSigners(payload?.verificationMethod);
|
|
138
|
+
const signBytes = MsgCreateDidDocPayload.encode(payload).finish();
|
|
139
|
+
const signInfos = await Promise.all(signInputs.map(async (signInput) => {
|
|
140
|
+
return {
|
|
141
|
+
verificationMethodId: signInput.verificationMethodId,
|
|
142
|
+
signature: base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)))
|
|
143
|
+
};
|
|
144
|
+
}));
|
|
145
|
+
return signInfos;
|
|
146
|
+
}
|
|
147
|
+
async signupdateDidDocTx(signInputs, payload) {
|
|
148
|
+
await this.checkDidSigners(payload?.verificationMethod);
|
|
149
|
+
const signBytes = MsgUpdateDidDocPayload.encode(payload).finish();
|
|
150
|
+
const signInfos = await Promise.all(signInputs.map(async (signInput) => {
|
|
151
|
+
return {
|
|
152
|
+
verificationMethodId: signInput.verificationMethodId,
|
|
153
|
+
signature: base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)))
|
|
154
|
+
};
|
|
155
|
+
}));
|
|
156
|
+
return signInfos;
|
|
157
|
+
}
|
|
158
|
+
async signdeactivateDidDocTx(signInputs, payload, verificationMethod) {
|
|
159
|
+
await this.checkDidSigners(verificationMethod);
|
|
160
|
+
const signBytes = MsgDeactivateDidDocPayload.encode(payload).finish();
|
|
161
|
+
const signInfos = await Promise.all(signInputs.map(async (signInput) => {
|
|
162
|
+
return {
|
|
163
|
+
verificationMethodId: signInput.verificationMethodId,
|
|
164
|
+
signature: base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)))
|
|
165
|
+
};
|
|
166
|
+
}));
|
|
167
|
+
return signInfos;
|
|
168
|
+
}
|
|
169
|
+
static async signIdentityTx(signBytes, signInputs) {
|
|
170
|
+
let signInfos = [];
|
|
171
|
+
for (let signInput of signInputs) {
|
|
172
|
+
if (typeof (signInput.keyType) === undefined) {
|
|
173
|
+
throw new Error('Key type is not defined');
|
|
174
|
+
}
|
|
175
|
+
let signature;
|
|
176
|
+
switch (signInput.keyType) {
|
|
177
|
+
case 'Ed25519':
|
|
178
|
+
signature = (await EdDSASigner(hexToBytes(signInput.privateKeyHex))(signBytes));
|
|
179
|
+
break;
|
|
180
|
+
case 'Secp256k1':
|
|
181
|
+
signature = (await ES256KSigner(hexToBytes(signInput.privateKeyHex))(signBytes));
|
|
182
|
+
break;
|
|
183
|
+
case 'P256':
|
|
184
|
+
signature = (await ES256Signer(hexToBytes(signInput.privateKeyHex))(signBytes));
|
|
185
|
+
break;
|
|
186
|
+
default:
|
|
187
|
+
throw new Error(`Unsupported signature type: ${signInput.keyType}`);
|
|
188
|
+
}
|
|
189
|
+
signInfos.push({
|
|
190
|
+
verificationMethodId: signInput.verificationMethodId,
|
|
191
|
+
signature: base64ToBytes(signature)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
return signInfos;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|