@xyo-network/xns-record-payload-plugins 2.99.5 → 2.99.6
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/dist/browser/index.cjs +27 -64
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +27 -66
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/index.cjs +27 -64
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.mjs +27 -66
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/index.cjs +27 -64
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +27 -66
- package/dist/node/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/browser/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -63,56 +62,22 @@ var DomainLeaseEstimateDivinerValidationErrorDetailsSchema = "network.xyo.divine
|
|
|
63
62
|
|
|
64
63
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts
|
|
65
64
|
var DomainLeaseEstimateDivinerErrorDetailsDictionary = {
|
|
66
|
-
0: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
2: {
|
|
77
|
-
code: "2",
|
|
78
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
79
|
-
title: "Invalid coin signature"
|
|
80
|
-
},
|
|
81
|
-
3: {
|
|
82
|
-
code: "3",
|
|
83
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
84
|
-
title: "Invalid length"
|
|
85
|
-
},
|
|
86
|
-
4: {
|
|
87
|
-
code: "4",
|
|
88
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
89
|
-
title: "Invalid name"
|
|
90
|
-
},
|
|
91
|
-
5: {
|
|
92
|
-
code: "5",
|
|
93
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
94
|
-
title: "Reserved fragment"
|
|
95
|
-
},
|
|
96
|
-
6: {
|
|
97
|
-
code: "6",
|
|
98
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
99
|
-
title: "Reserved name"
|
|
100
|
-
},
|
|
101
|
-
7: {
|
|
102
|
-
code: "7",
|
|
103
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
104
|
-
title: "Reserved string"
|
|
105
|
-
},
|
|
106
|
-
8: {
|
|
107
|
-
code: "8",
|
|
108
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
109
|
-
title: "Invalid TLD"
|
|
110
|
-
}
|
|
65
|
+
0: { code: "0", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Success" },
|
|
66
|
+
1: { code: "1", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid casing" },
|
|
67
|
+
2: { code: "2", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid coin signature" },
|
|
68
|
+
3: { code: "3", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid length" },
|
|
69
|
+
4: { code: "4", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid name" },
|
|
70
|
+
5: { code: "5", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved fragment" },
|
|
71
|
+
6: { code: "6", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved name" },
|
|
72
|
+
7: { code: "7", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved string" },
|
|
73
|
+
8: { code: "8", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid TLD" }
|
|
111
74
|
};
|
|
112
75
|
|
|
113
76
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts
|
|
114
77
|
var import_payload_model2 = require("@xyo-network/payload-model");
|
|
115
|
-
var isDomainLeaseEstimateDivinerValidationErrorDetails = (0, import_payload_model2.isPayloadOfSchemaType)(
|
|
78
|
+
var isDomainLeaseEstimateDivinerValidationErrorDetails = (0, import_payload_model2.isPayloadOfSchemaType)(
|
|
79
|
+
DomainLeaseEstimateDivinerValidationErrorDetailsSchema
|
|
80
|
+
);
|
|
116
81
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources = (0, import_payload_model2.isPayloadOfSchemaTypeWithSources)(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
117
82
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta = (0, import_payload_model2.isPayloadOfSchemaTypeWithMeta)(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
118
83
|
|
|
@@ -148,46 +113,44 @@ var isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta;
|
|
|
148
113
|
|
|
149
114
|
// src/Duration/validation/validateBoundWitness.ts
|
|
150
115
|
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
151
|
-
var validateBoundWitness =
|
|
116
|
+
var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
|
|
152
117
|
if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
|
|
153
118
|
const validator = new import_boundwitness_validator.BoundWitnessValidator(recordBw);
|
|
154
119
|
const errors = await validator.validate();
|
|
155
120
|
return errors.length === 0;
|
|
156
|
-
}
|
|
121
|
+
};
|
|
157
122
|
|
|
158
123
|
// src/Duration/validation/validateBoundWitnessAndDuration.ts
|
|
159
124
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
160
|
-
var validateBoundWitnessAndDuration =
|
|
125
|
+
var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
|
|
161
126
|
if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
|
|
162
127
|
if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
|
|
163
128
|
return true;
|
|
164
|
-
}
|
|
165
|
-
var recordIsInBoundWitness =
|
|
129
|
+
};
|
|
130
|
+
var recordIsInBoundWitness = async (recordBw, recordPayload) => {
|
|
166
131
|
const hash = await import_payload_builder.PayloadBuilder.dataHash(recordPayload);
|
|
167
132
|
return recordBw.payload_hashes.includes(hash);
|
|
168
|
-
}
|
|
169
|
-
var recordIsTemporallyValidToBoundWitness =
|
|
133
|
+
};
|
|
134
|
+
var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
|
|
170
135
|
const { timestamp } = recordBw;
|
|
171
136
|
const { exp } = recordPayload;
|
|
172
137
|
return exp > timestamp;
|
|
173
|
-
}
|
|
138
|
+
};
|
|
174
139
|
|
|
175
140
|
// src/Duration/validation/validateDuration.ts
|
|
176
|
-
var validateDuration =
|
|
141
|
+
var validateDuration = (recordPayload) => {
|
|
177
142
|
if (!isWithinDelegatedTimeframe(recordPayload)) return false;
|
|
178
143
|
return true;
|
|
179
|
-
}
|
|
180
|
-
var isWithinDelegatedTimeframe =
|
|
144
|
+
};
|
|
145
|
+
var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
|
|
181
146
|
return recordPayload.nbf < now && now < recordPayload.exp;
|
|
182
|
-
}
|
|
147
|
+
};
|
|
183
148
|
|
|
184
149
|
// src/Duration/validation/validateBoundWitnessWithDuration.ts
|
|
185
|
-
var validateBoundWitnessWithDuration =
|
|
186
|
-
if (!await validateBoundWitness(recordBw, [
|
|
187
|
-
recordPayload.schema
|
|
188
|
-
])) return false;
|
|
150
|
+
var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
|
|
151
|
+
if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
|
|
189
152
|
if (!validateDuration(recordPayload)) return false;
|
|
190
153
|
if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
|
|
191
154
|
return true;
|
|
192
|
-
}
|
|
155
|
+
};
|
|
193
156
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/diviner/DomainLeaseEstimateDiviner/Schema.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address/index.ts'\nexport * from './diviner/index.ts'\nexport * from './Domain/index.ts'\nexport * from './DomainRegistration/index.ts'\nexport * from './Duration/index.ts'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain/index.ts'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","export const DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n = 'network.xyo.diviner.ns.domain.registration.lease.estimate.validation.error.details' as const\n\nexport type DomainLeaseEstimateDivinerValidationErrorDetailsSchema = typeof DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n","import { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\nimport { DomainLeaseEstimateDivinerValidationErrorDetails, ErrorDetailsDictionary } from './Payload.ts'\n\n// export type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = keyof typeof DomainLeaseEstimateDivinerErrorDetailsDictionary\nexport type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\nexport const DomainLeaseEstimateDivinerErrorDetailsDictionary: Readonly<\n Readonly<Record<DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode, DomainLeaseEstimateDivinerValidationErrorDetails>> &\n ErrorDetailsDictionary\n> = {\n 0: { code: '0', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Success' },\n 1: { code: '1', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid casing' },\n 2: { code: '2', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid coin signature' },\n 3: { code: '3', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid length' },\n 4: { code: '4', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid name' },\n 5: { code: '5', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved fragment' },\n 6: { code: '6', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved name' },\n 7: { code: '7', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved string' },\n 8: { code: '8', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid TLD' },\n} as const\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\n\nexport interface ErrorDetails<TErrorCode extends string | undefined = string | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any // Index signature for any other additional properties\n /**\n * A string code indicating the error type.\n */\n code: TErrorCode\n /**\n * A human-readable explanation specific to this occurrence of the problem\n */\n detail?: string\n /**\n * A short, human-readable summary of the problem type.\n */\n title?: string\n}\n\nexport type ErrorDetailsDictionary<T extends number = number> = {\n readonly [K in T]: ErrorDetails<`${K}`>\n}\n\n/**\n * A payment authorization token payload\n */\nexport type DomainLeaseEstimateDivinerValidationErrorDetails<TErrorCode extends string | undefined = string> = Payload<\n ErrorDetails<TErrorCode>,\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n>\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType<DomainLeaseEstimateDivinerValidationErrorDetails>(\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema,\n)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with sources\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources\n = isPayloadOfSchemaTypeWithSources<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with meta\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta\n = isPayloadOfSchemaTypeWithMeta<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainFields } from './Domain.ts'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain/index.ts'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration.ts'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithSources instead\n */\nexport const isDomainRegistrationLeaseSources = isDomainRegistrationLeaseWithSources\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithMeta instead\n */\nexport const isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every(requiredSchema => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\nimport { validateBoundWitness } from './validateBoundWitness.ts'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration.ts'\nimport { validateDuration } from './validateDuration.ts'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":"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","names":["AddressRecordSchema","isAddressRecord","isPayloadOfSchemaType","isAddressRecordWithMeta","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","DomainLeaseEstimateDivinerErrorDetailsDictionary","code","schema","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","title","import_payload_model","isDomainLeaseEstimateDivinerValidationErrorDetails","isPayloadOfSchemaType","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources","isPayloadOfSchemaTypeWithSources","isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta","isPayloadOfSchemaTypeWithMeta","import_payload_model","DomainSchema","isDomain","isPayloadOfSchemaType","isDomainWithSources","isPayloadOfSchemaTypeWithSources","isDomainWithMeta","isPayloadOfSchemaTypeWithMeta","import_payload_model","DomainLeaseSchema","isDomainLease","isPayloadOfSchemaType","isDomainLeaseWithSources","isPayloadOfSchemaTypeWithSources","isDomainLeaseWithMeta","isPayloadOfSchemaTypeWithMeta","import_payload_model","DomainRegistrationSchema","DomainSchema","isDomainRegistration","isPayloadOfSchemaType","isDomainRegistrationWithSources","isPayloadOfSchemaTypeWithSources","isDomainRegistrationWithMeta","isPayloadOfSchemaTypeWithMeta","import_payload_model","DomainRegistrationLeaseSchema","DomainRegistrationSchema","isDomainRegistrationLease","isPayloadOfSchemaType","isDomainRegistrationLeaseWithSources","isPayloadOfSchemaTypeWithSources","isDomainRegistrationLeaseSources","isDomainRegistrationLeaseWithMeta","isPayloadOfSchemaTypeWithMeta","isDomainRegistrationLeaseMeta","validateBoundWitness","recordBw","requiredSchemas","every","requiredSchema","payload_schemas","includes","validator","BoundWitnessValidator","errors","validate","length","validateBoundWitnessAndDuration","recordBw","recordPayload","recordIsInBoundWitness","recordIsTemporallyValidToBoundWitness","hash","PayloadBuilder","dataHash","payload_hashes","includes","timestamp","exp","validateDuration","recordPayload","isWithinDelegatedTimeframe","now","Date","nbf","exp","validateBoundWitnessWithDuration","recordBw","recordPayload","validateBoundWitness","schema","validateDuration","validateBoundWitnessAndDuration"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/diviner/DomainLeaseEstimateDiviner/Schema.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address/index.ts'\nexport * from './diviner/index.ts'\nexport * from './Domain/index.ts'\nexport * from './DomainRegistration/index.ts'\nexport * from './Duration/index.ts'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain/index.ts'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","export const DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n = 'network.xyo.diviner.ns.domain.registration.lease.estimate.validation.error.details' as const\n\nexport type DomainLeaseEstimateDivinerValidationErrorDetailsSchema = typeof DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n","import { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\nimport { DomainLeaseEstimateDivinerValidationErrorDetails, ErrorDetailsDictionary } from './Payload.ts'\n\n// export type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = keyof typeof DomainLeaseEstimateDivinerErrorDetailsDictionary\nexport type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\nexport const DomainLeaseEstimateDivinerErrorDetailsDictionary: Readonly<\n Readonly<Record<DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode, DomainLeaseEstimateDivinerValidationErrorDetails>> &\n ErrorDetailsDictionary\n> = {\n 0: { code: '0', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Success' },\n 1: { code: '1', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid casing' },\n 2: { code: '2', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid coin signature' },\n 3: { code: '3', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid length' },\n 4: { code: '4', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid name' },\n 5: { code: '5', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved fragment' },\n 6: { code: '6', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved name' },\n 7: { code: '7', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved string' },\n 8: { code: '8', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid TLD' },\n} as const\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\n\nexport interface ErrorDetails<TErrorCode extends string | undefined = string | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any // Index signature for any other additional properties\n /**\n * A string code indicating the error type.\n */\n code: TErrorCode\n /**\n * A human-readable explanation specific to this occurrence of the problem\n */\n detail?: string\n /**\n * A short, human-readable summary of the problem type.\n */\n title?: string\n}\n\nexport type ErrorDetailsDictionary<T extends number = number> = {\n readonly [K in T]: ErrorDetails<`${K}`>\n}\n\n/**\n * A payment authorization token payload\n */\nexport type DomainLeaseEstimateDivinerValidationErrorDetails<TErrorCode extends string | undefined = string> = Payload<\n ErrorDetails<TErrorCode>,\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n>\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType<DomainLeaseEstimateDivinerValidationErrorDetails>(\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema,\n)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with sources\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources\n = isPayloadOfSchemaTypeWithSources<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with meta\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta\n = isPayloadOfSchemaTypeWithMeta<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainFields } from './Domain.ts'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain/index.ts'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration.ts'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithSources instead\n */\nexport const isDomainRegistrationLeaseSources = isDomainRegistrationLeaseWithSources\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithMeta instead\n */\nexport const isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every(requiredSchema => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\nimport { validateBoundWitness } from './validateBoundWitness.ts'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration.ts'\nimport { validateDuration } from './validateDuration.ts'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":"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","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/Address/Payload.ts
|
|
5
2
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
6
3
|
var AddressRecordSchema = "network.xyo.ns.record.address";
|
|
@@ -12,56 +9,22 @@ var DomainLeaseEstimateDivinerValidationErrorDetailsSchema = "network.xyo.divine
|
|
|
12
9
|
|
|
13
10
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts
|
|
14
11
|
var DomainLeaseEstimateDivinerErrorDetailsDictionary = {
|
|
15
|
-
0: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
2: {
|
|
26
|
-
code: "2",
|
|
27
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
28
|
-
title: "Invalid coin signature"
|
|
29
|
-
},
|
|
30
|
-
3: {
|
|
31
|
-
code: "3",
|
|
32
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
33
|
-
title: "Invalid length"
|
|
34
|
-
},
|
|
35
|
-
4: {
|
|
36
|
-
code: "4",
|
|
37
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
38
|
-
title: "Invalid name"
|
|
39
|
-
},
|
|
40
|
-
5: {
|
|
41
|
-
code: "5",
|
|
42
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
43
|
-
title: "Reserved fragment"
|
|
44
|
-
},
|
|
45
|
-
6: {
|
|
46
|
-
code: "6",
|
|
47
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
48
|
-
title: "Reserved name"
|
|
49
|
-
},
|
|
50
|
-
7: {
|
|
51
|
-
code: "7",
|
|
52
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
53
|
-
title: "Reserved string"
|
|
54
|
-
},
|
|
55
|
-
8: {
|
|
56
|
-
code: "8",
|
|
57
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
58
|
-
title: "Invalid TLD"
|
|
59
|
-
}
|
|
12
|
+
0: { code: "0", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Success" },
|
|
13
|
+
1: { code: "1", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid casing" },
|
|
14
|
+
2: { code: "2", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid coin signature" },
|
|
15
|
+
3: { code: "3", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid length" },
|
|
16
|
+
4: { code: "4", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid name" },
|
|
17
|
+
5: { code: "5", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved fragment" },
|
|
18
|
+
6: { code: "6", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved name" },
|
|
19
|
+
7: { code: "7", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved string" },
|
|
20
|
+
8: { code: "8", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid TLD" }
|
|
60
21
|
};
|
|
61
22
|
|
|
62
23
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts
|
|
63
24
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType2, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources } from "@xyo-network/payload-model";
|
|
64
|
-
var isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType2(
|
|
25
|
+
var isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType2(
|
|
26
|
+
DomainLeaseEstimateDivinerValidationErrorDetailsSchema
|
|
27
|
+
);
|
|
65
28
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources = isPayloadOfSchemaTypeWithSources(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
66
29
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta = isPayloadOfSchemaTypeWithMeta(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
67
30
|
|
|
@@ -97,48 +60,46 @@ var isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta;
|
|
|
97
60
|
|
|
98
61
|
// src/Duration/validation/validateBoundWitness.ts
|
|
99
62
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
100
|
-
var validateBoundWitness =
|
|
63
|
+
var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
|
|
101
64
|
if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
|
|
102
65
|
const validator = new BoundWitnessValidator(recordBw);
|
|
103
66
|
const errors = await validator.validate();
|
|
104
67
|
return errors.length === 0;
|
|
105
|
-
}
|
|
68
|
+
};
|
|
106
69
|
|
|
107
70
|
// src/Duration/validation/validateBoundWitnessAndDuration.ts
|
|
108
71
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
109
|
-
var validateBoundWitnessAndDuration =
|
|
72
|
+
var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
|
|
110
73
|
if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
|
|
111
74
|
if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
|
|
112
75
|
return true;
|
|
113
|
-
}
|
|
114
|
-
var recordIsInBoundWitness =
|
|
76
|
+
};
|
|
77
|
+
var recordIsInBoundWitness = async (recordBw, recordPayload) => {
|
|
115
78
|
const hash = await PayloadBuilder.dataHash(recordPayload);
|
|
116
79
|
return recordBw.payload_hashes.includes(hash);
|
|
117
|
-
}
|
|
118
|
-
var recordIsTemporallyValidToBoundWitness =
|
|
80
|
+
};
|
|
81
|
+
var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
|
|
119
82
|
const { timestamp } = recordBw;
|
|
120
83
|
const { exp } = recordPayload;
|
|
121
84
|
return exp > timestamp;
|
|
122
|
-
}
|
|
85
|
+
};
|
|
123
86
|
|
|
124
87
|
// src/Duration/validation/validateDuration.ts
|
|
125
|
-
var validateDuration =
|
|
88
|
+
var validateDuration = (recordPayload) => {
|
|
126
89
|
if (!isWithinDelegatedTimeframe(recordPayload)) return false;
|
|
127
90
|
return true;
|
|
128
|
-
}
|
|
129
|
-
var isWithinDelegatedTimeframe =
|
|
91
|
+
};
|
|
92
|
+
var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
|
|
130
93
|
return recordPayload.nbf < now && now < recordPayload.exp;
|
|
131
|
-
}
|
|
94
|
+
};
|
|
132
95
|
|
|
133
96
|
// src/Duration/validation/validateBoundWitnessWithDuration.ts
|
|
134
|
-
var validateBoundWitnessWithDuration =
|
|
135
|
-
if (!await validateBoundWitness(recordBw, [
|
|
136
|
-
recordPayload.schema
|
|
137
|
-
])) return false;
|
|
97
|
+
var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
|
|
98
|
+
if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
|
|
138
99
|
if (!validateDuration(recordPayload)) return false;
|
|
139
100
|
if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
|
|
140
101
|
return true;
|
|
141
|
-
}
|
|
102
|
+
};
|
|
142
103
|
export {
|
|
143
104
|
AddressRecordSchema,
|
|
144
105
|
DomainLeaseEstimateDivinerErrorDetailsDictionary,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Address/Payload.ts","../../src/diviner/DomainLeaseEstimateDiviner/Schema.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain/index.ts'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","export const DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n = 'network.xyo.diviner.ns.domain.registration.lease.estimate.validation.error.details' as const\n\nexport type DomainLeaseEstimateDivinerValidationErrorDetailsSchema = typeof DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n","import { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\nimport { DomainLeaseEstimateDivinerValidationErrorDetails, ErrorDetailsDictionary } from './Payload.ts'\n\n// export type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = keyof typeof DomainLeaseEstimateDivinerErrorDetailsDictionary\nexport type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\nexport const DomainLeaseEstimateDivinerErrorDetailsDictionary: Readonly<\n Readonly<Record<DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode, DomainLeaseEstimateDivinerValidationErrorDetails>> &\n ErrorDetailsDictionary\n> = {\n 0: { code: '0', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Success' },\n 1: { code: '1', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid casing' },\n 2: { code: '2', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid coin signature' },\n 3: { code: '3', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid length' },\n 4: { code: '4', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid name' },\n 5: { code: '5', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved fragment' },\n 6: { code: '6', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved name' },\n 7: { code: '7', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved string' },\n 8: { code: '8', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid TLD' },\n} as const\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\n\nexport interface ErrorDetails<TErrorCode extends string | undefined = string | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any // Index signature for any other additional properties\n /**\n * A string code indicating the error type.\n */\n code: TErrorCode\n /**\n * A human-readable explanation specific to this occurrence of the problem\n */\n detail?: string\n /**\n * A short, human-readable summary of the problem type.\n */\n title?: string\n}\n\nexport type ErrorDetailsDictionary<T extends number = number> = {\n readonly [K in T]: ErrorDetails<`${K}`>\n}\n\n/**\n * A payment authorization token payload\n */\nexport type DomainLeaseEstimateDivinerValidationErrorDetails<TErrorCode extends string | undefined = string> = Payload<\n ErrorDetails<TErrorCode>,\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n>\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType<DomainLeaseEstimateDivinerValidationErrorDetails>(\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema,\n)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with sources\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources\n = isPayloadOfSchemaTypeWithSources<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with meta\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta\n = isPayloadOfSchemaTypeWithMeta<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainFields } from './Domain.ts'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain/index.ts'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration.ts'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithSources instead\n */\nexport const isDomainRegistrationLeaseSources = isDomainRegistrationLeaseWithSources\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithMeta instead\n */\nexport const isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every(requiredSchema => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\nimport { validateBoundWitness } from './validateBoundWitness.ts'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration.ts'\nimport { validateDuration } from './validateDuration.ts'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":"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","names":["isPayloadOfSchemaType","AddressRecordSchema","isAddressRecord","isAddressRecordWithMeta","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","DomainLeaseEstimateDivinerErrorDetailsDictionary","code","schema","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","title","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isDomainLeaseEstimateDivinerValidationErrorDetails","isPayloadOfSchemaType","DomainLeaseEstimateDivinerValidationErrorDetailsSchema","isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources","isPayloadOfSchemaTypeWithSources","isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","DomainSchema","isDomain","isDomainWithSources","isDomainWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","DomainLeaseSchema","isDomainLease","isDomainLeaseWithSources","isDomainLeaseWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","DomainRegistrationSchema","DomainSchema","isDomainRegistration","isPayloadOfSchemaType","isDomainRegistrationWithSources","isPayloadOfSchemaTypeWithSources","isDomainRegistrationWithMeta","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","DomainRegistrationLeaseSchema","DomainRegistrationSchema","isDomainRegistrationLease","isPayloadOfSchemaType","isDomainRegistrationLeaseWithSources","isPayloadOfSchemaTypeWithSources","isDomainRegistrationLeaseSources","isDomainRegistrationLeaseWithMeta","isPayloadOfSchemaTypeWithMeta","isDomainRegistrationLeaseMeta","BoundWitnessValidator","validateBoundWitness","recordBw","requiredSchemas","every","requiredSchema","payload_schemas","includes","validator","BoundWitnessValidator","errors","validate","length","PayloadBuilder","validateBoundWitnessAndDuration","recordBw","recordPayload","recordIsInBoundWitness","recordIsTemporallyValidToBoundWitness","hash","PayloadBuilder","dataHash","payload_hashes","includes","timestamp","exp","validateDuration","recordPayload","isWithinDelegatedTimeframe","now","Date","nbf","exp","validateBoundWitnessWithDuration","recordBw","recordPayload","validateBoundWitness","schema","validateDuration","validateBoundWitnessAndDuration"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Address/Payload.ts","../../src/diviner/DomainLeaseEstimateDiviner/Schema.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts","../../src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain/index.ts'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","export const DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n = 'network.xyo.diviner.ns.domain.registration.lease.estimate.validation.error.details' as const\n\nexport type DomainLeaseEstimateDivinerValidationErrorDetailsSchema = typeof DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n","import { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\nimport { DomainLeaseEstimateDivinerValidationErrorDetails, ErrorDetailsDictionary } from './Payload.ts'\n\n// export type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = keyof typeof DomainLeaseEstimateDivinerErrorDetailsDictionary\nexport type DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\nexport const DomainLeaseEstimateDivinerErrorDetailsDictionary: Readonly<\n Readonly<Record<DomainLeaseEstimateDivinerErrorDetailsDictionaryErrorCode, DomainLeaseEstimateDivinerValidationErrorDetails>> &\n ErrorDetailsDictionary\n> = {\n 0: { code: '0', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Success' },\n 1: { code: '1', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid casing' },\n 2: { code: '2', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid coin signature' },\n 3: { code: '3', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid length' },\n 4: { code: '4', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid name' },\n 5: { code: '5', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved fragment' },\n 6: { code: '6', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved name' },\n 7: { code: '7', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Reserved string' },\n 8: { code: '8', schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: 'Invalid TLD' },\n} as const\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainLeaseEstimateDivinerValidationErrorDetailsSchema } from '../Schema.ts'\n\nexport interface ErrorDetails<TErrorCode extends string | undefined = string | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any // Index signature for any other additional properties\n /**\n * A string code indicating the error type.\n */\n code: TErrorCode\n /**\n * A human-readable explanation specific to this occurrence of the problem\n */\n detail?: string\n /**\n * A short, human-readable summary of the problem type.\n */\n title?: string\n}\n\nexport type ErrorDetailsDictionary<T extends number = number> = {\n readonly [K in T]: ErrorDetails<`${K}`>\n}\n\n/**\n * A payment authorization token payload\n */\nexport type DomainLeaseEstimateDivinerValidationErrorDetails<TErrorCode extends string | undefined = string> = Payload<\n ErrorDetails<TErrorCode>,\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema\n>\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetails = isPayloadOfSchemaType<DomainLeaseEstimateDivinerValidationErrorDetails>(\n DomainLeaseEstimateDivinerValidationErrorDetailsSchema,\n)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with sources\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources\n = isPayloadOfSchemaTypeWithSources<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n\n/**\n * Identity function for DomainLeaseEstimateDivinerValidationErrorDetails payload with meta\n */\nexport const isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta\n = isPayloadOfSchemaTypeWithMeta<DomainLeaseEstimateDivinerValidationErrorDetails>(DomainLeaseEstimateDivinerValidationErrorDetailsSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainFields } from './Domain.ts'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain/index.ts'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration/index.ts'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration.ts'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithSources instead\n */\nexport const isDomainRegistrationLeaseSources = isDomainRegistrationLeaseWithSources\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n/**\n * @deprecated Use isDomainRegistrationLeaseWithMeta instead\n */\nexport const isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every(requiredSchema => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration.ts'\nimport { validateBoundWitness } from './validateBoundWitness.ts'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration.ts'\nimport { validateDuration } from './validateDuration.ts'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":"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","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
|
package/dist/neutral/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -63,56 +62,22 @@ var DomainLeaseEstimateDivinerValidationErrorDetailsSchema = "network.xyo.divine
|
|
|
63
62
|
|
|
64
63
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/ErrorCodes.ts
|
|
65
64
|
var DomainLeaseEstimateDivinerErrorDetailsDictionary = {
|
|
66
|
-
0: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
2: {
|
|
77
|
-
code: "2",
|
|
78
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
79
|
-
title: "Invalid coin signature"
|
|
80
|
-
},
|
|
81
|
-
3: {
|
|
82
|
-
code: "3",
|
|
83
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
84
|
-
title: "Invalid length"
|
|
85
|
-
},
|
|
86
|
-
4: {
|
|
87
|
-
code: "4",
|
|
88
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
89
|
-
title: "Invalid name"
|
|
90
|
-
},
|
|
91
|
-
5: {
|
|
92
|
-
code: "5",
|
|
93
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
94
|
-
title: "Reserved fragment"
|
|
95
|
-
},
|
|
96
|
-
6: {
|
|
97
|
-
code: "6",
|
|
98
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
99
|
-
title: "Reserved name"
|
|
100
|
-
},
|
|
101
|
-
7: {
|
|
102
|
-
code: "7",
|
|
103
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
104
|
-
title: "Reserved string"
|
|
105
|
-
},
|
|
106
|
-
8: {
|
|
107
|
-
code: "8",
|
|
108
|
-
schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema,
|
|
109
|
-
title: "Invalid TLD"
|
|
110
|
-
}
|
|
65
|
+
0: { code: "0", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Success" },
|
|
66
|
+
1: { code: "1", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid casing" },
|
|
67
|
+
2: { code: "2", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid coin signature" },
|
|
68
|
+
3: { code: "3", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid length" },
|
|
69
|
+
4: { code: "4", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid name" },
|
|
70
|
+
5: { code: "5", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved fragment" },
|
|
71
|
+
6: { code: "6", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved name" },
|
|
72
|
+
7: { code: "7", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Reserved string" },
|
|
73
|
+
8: { code: "8", schema: DomainLeaseEstimateDivinerValidationErrorDetailsSchema, title: "Invalid TLD" }
|
|
111
74
|
};
|
|
112
75
|
|
|
113
76
|
// src/diviner/DomainLeaseEstimateDiviner/ErrorDetails/Payload.ts
|
|
114
77
|
var import_payload_model2 = require("@xyo-network/payload-model");
|
|
115
|
-
var isDomainLeaseEstimateDivinerValidationErrorDetails = (0, import_payload_model2.isPayloadOfSchemaType)(
|
|
78
|
+
var isDomainLeaseEstimateDivinerValidationErrorDetails = (0, import_payload_model2.isPayloadOfSchemaType)(
|
|
79
|
+
DomainLeaseEstimateDivinerValidationErrorDetailsSchema
|
|
80
|
+
);
|
|
116
81
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithSources = (0, import_payload_model2.isPayloadOfSchemaTypeWithSources)(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
117
82
|
var isDomainLeaseEstimateDivinerValidationErrorDetailsWithMeta = (0, import_payload_model2.isPayloadOfSchemaTypeWithMeta)(DomainLeaseEstimateDivinerValidationErrorDetailsSchema);
|
|
118
83
|
|
|
@@ -148,46 +113,44 @@ var isDomainRegistrationLeaseMeta = isDomainRegistrationLeaseWithMeta;
|
|
|
148
113
|
|
|
149
114
|
// src/Duration/validation/validateBoundWitness.ts
|
|
150
115
|
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
151
|
-
var validateBoundWitness =
|
|
116
|
+
var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
|
|
152
117
|
if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
|
|
153
118
|
const validator = new import_boundwitness_validator.BoundWitnessValidator(recordBw);
|
|
154
119
|
const errors = await validator.validate();
|
|
155
120
|
return errors.length === 0;
|
|
156
|
-
}
|
|
121
|
+
};
|
|
157
122
|
|
|
158
123
|
// src/Duration/validation/validateBoundWitnessAndDuration.ts
|
|
159
124
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
160
|
-
var validateBoundWitnessAndDuration =
|
|
125
|
+
var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
|
|
161
126
|
if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
|
|
162
127
|
if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
|
|
163
128
|
return true;
|
|
164
|
-
}
|
|
165
|
-
var recordIsInBoundWitness =
|
|
129
|
+
};
|
|
130
|
+
var recordIsInBoundWitness = async (recordBw, recordPayload) => {
|
|
166
131
|
const hash = await import_payload_builder.PayloadBuilder.dataHash(recordPayload);
|
|
167
132
|
return recordBw.payload_hashes.includes(hash);
|
|
168
|
-
}
|
|
169
|
-
var recordIsTemporallyValidToBoundWitness =
|
|
133
|
+
};
|
|
134
|
+
var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
|
|
170
135
|
const { timestamp } = recordBw;
|
|
171
136
|
const { exp } = recordPayload;
|
|
172
137
|
return exp > timestamp;
|
|
173
|
-
}
|
|
138
|
+
};
|
|
174
139
|
|
|
175
140
|
// src/Duration/validation/validateDuration.ts
|
|
176
|
-
var validateDuration =
|
|
141
|
+
var validateDuration = (recordPayload) => {
|
|
177
142
|
if (!isWithinDelegatedTimeframe(recordPayload)) return false;
|
|
178
143
|
return true;
|
|
179
|
-
}
|
|
180
|
-
var isWithinDelegatedTimeframe =
|
|
144
|
+
};
|
|
145
|
+
var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
|
|
181
146
|
return recordPayload.nbf < now && now < recordPayload.exp;
|
|
182
|
-
}
|
|
147
|
+
};
|
|
183
148
|
|
|
184
149
|
// src/Duration/validation/validateBoundWitnessWithDuration.ts
|
|
185
|
-
var validateBoundWitnessWithDuration =
|
|
186
|
-
if (!await validateBoundWitness(recordBw, [
|
|
187
|
-
recordPayload.schema
|
|
188
|
-
])) return false;
|
|
150
|
+
var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
|
|
151
|
+
if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
|
|
189
152
|
if (!validateDuration(recordPayload)) return false;
|
|
190
153
|
if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
|
|
191
154
|
return true;
|
|
192
|
-
}
|
|
155
|
+
};
|
|
193
156
|
//# sourceMappingURL=index.cjs.map
|