@xyo-network/core 2.20.17
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/LICENSE +165 -0
- package/README.md +79 -0
- package/babel.config.json +5 -0
- package/dist/cjs/BoundWitness/Builder/Builder.d.ts +22 -0
- package/dist/cjs/BoundWitness/Builder/Builder.js +68 -0
- package/dist/cjs/BoundWitness/Builder/Builder.js.map +1 -0
- package/dist/cjs/BoundWitness/Builder/index.d.ts +1 -0
- package/dist/cjs/BoundWitness/Builder/index.js +5 -0
- package/dist/cjs/BoundWitness/Builder/index.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/BodyValidator.d.ts +18 -0
- package/dist/cjs/BoundWitness/Validator/BodyValidator.js +91 -0
- package/dist/cjs/BoundWitness/Validator/BodyValidator.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/MetaValidator.d.ts +14 -0
- package/dist/cjs/BoundWitness/Validator/MetaValidator.js +70 -0
- package/dist/cjs/BoundWitness/Validator/MetaValidator.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/Validator.d.ts +12 -0
- package/dist/cjs/BoundWitness/Validator/Validator.js +46 -0
- package/dist/cjs/BoundWitness/Validator/Validator.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/index.d.ts +3 -0
- package/dist/cjs/BoundWitness/Validator/index.js +7 -0
- package/dist/cjs/BoundWitness/Validator/index.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/ip-regex.d.ts +9 -0
- package/dist/cjs/BoundWitness/Validator/ip-regex.js +31 -0
- package/dist/cjs/BoundWitness/Validator/ip-regex.js.map +1 -0
- package/dist/cjs/BoundWitness/Validator/is-ip.d.ts +4 -0
- package/dist/cjs/BoundWitness/Validator/is-ip.js +21 -0
- package/dist/cjs/BoundWitness/Validator/is-ip.js.map +1 -0
- package/dist/cjs/BoundWitness/Wrapper/Wrapper.d.ts +13 -0
- package/dist/cjs/BoundWitness/Wrapper/Wrapper.js +30 -0
- package/dist/cjs/BoundWitness/Wrapper/Wrapper.js.map +1 -0
- package/dist/cjs/BoundWitness/Wrapper/index.d.ts +1 -0
- package/dist/cjs/BoundWitness/Wrapper/index.js +5 -0
- package/dist/cjs/BoundWitness/Wrapper/index.js.map +1 -0
- package/dist/cjs/BoundWitness/index.d.ts +4 -0
- package/dist/cjs/BoundWitness/index.js +8 -0
- package/dist/cjs/BoundWitness/index.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.d.ts +11 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.js +3 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.d.ts +37 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js +20 -0
- package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Body/index.d.ts +2 -0
- package/dist/cjs/BoundWitness/models/Body/index.js +6 -0
- package/dist/cjs/BoundWitness/models/Body/index.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.d.ts +13 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.js +3 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.d.ts +85 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js +28 -0
- package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js.map +1 -0
- package/dist/cjs/BoundWitness/models/Meta/index.d.ts +2 -0
- package/dist/cjs/BoundWitness/models/Meta/index.js +6 -0
- package/dist/cjs/BoundWitness/models/Meta/index.js.map +1 -0
- package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.d.ts +4 -0
- package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.js +3 -0
- package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.js.map +1 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitness.d.ts +5 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitness.js +3 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitness.js.map +1 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.d.ts +75 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.js +17 -0
- package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.js.map +1 -0
- package/dist/cjs/BoundWitness/models/index.d.ts +5 -0
- package/dist/cjs/BoundWitness/models/index.js +9 -0
- package/dist/cjs/BoundWitness/models/index.js.map +1 -0
- package/dist/cjs/Hasher/XyoHasher.d.ts +8 -0
- package/dist/cjs/Hasher/XyoHasher.js +29 -0
- package/dist/cjs/Hasher/XyoHasher.js.map +1 -0
- package/dist/cjs/Hasher/index.d.ts +4 -0
- package/dist/cjs/Hasher/index.js +8 -0
- package/dist/cjs/Hasher/index.js.map +1 -0
- package/dist/cjs/Hasher/removeEmptyFields.d.ts +1 -0
- package/dist/cjs/Hasher/removeEmptyFields.js +20 -0
- package/dist/cjs/Hasher/removeEmptyFields.js.map +1 -0
- package/dist/cjs/Hasher/removeFields.d.ts +6 -0
- package/dist/cjs/Hasher/removeFields.js +29 -0
- package/dist/cjs/Hasher/removeFields.js.map +1 -0
- package/dist/cjs/Hasher/sortFields.d.ts +1 -0
- package/dist/cjs/Hasher/sortFields.js +27 -0
- package/dist/cjs/Hasher/sortFields.js.map +1 -0
- package/dist/cjs/Huri/Huri.d.ts +26 -0
- package/dist/cjs/Huri/Huri.js +101 -0
- package/dist/cjs/Huri/Huri.js.map +1 -0
- package/dist/cjs/Huri/index.d.ts +1 -0
- package/dist/cjs/Huri/index.js +5 -0
- package/dist/cjs/Huri/index.js.map +1 -0
- package/dist/cjs/Payload/Builder/Builder.d.ts +14 -0
- package/dist/cjs/Payload/Builder/Builder.js +31 -0
- package/dist/cjs/Payload/Builder/Builder.js.map +1 -0
- package/dist/cjs/Payload/Builder/index.d.ts +1 -0
- package/dist/cjs/Payload/Builder/index.js +5 -0
- package/dist/cjs/Payload/Builder/index.js.map +1 -0
- package/dist/cjs/Payload/Validator/BodyValidator.d.ts +11 -0
- package/dist/cjs/Payload/Validator/BodyValidator.js +31 -0
- package/dist/cjs/Payload/Validator/BodyValidator.js.map +1 -0
- package/dist/cjs/Payload/Validator/MetaValidator.d.ts +9 -0
- package/dist/cjs/Payload/Validator/MetaValidator.js +37 -0
- package/dist/cjs/Payload/Validator/MetaValidator.js.map +1 -0
- package/dist/cjs/Payload/Validator/Validator.d.ts +11 -0
- package/dist/cjs/Payload/Validator/Validator.js +19 -0
- package/dist/cjs/Payload/Validator/Validator.js.map +1 -0
- package/dist/cjs/Payload/Validator/index.d.ts +3 -0
- package/dist/cjs/Payload/Validator/index.js +7 -0
- package/dist/cjs/Payload/Validator/index.js.map +1 -0
- package/dist/cjs/Payload/Wrapper/Validator.d.ts +9 -0
- package/dist/cjs/Payload/Wrapper/Validator.js +19 -0
- package/dist/cjs/Payload/Wrapper/Validator.js.map +1 -0
- package/dist/cjs/Payload/Wrapper/Wrapper.d.ts +9 -0
- package/dist/cjs/Payload/Wrapper/Wrapper.js +18 -0
- package/dist/cjs/Payload/Wrapper/Wrapper.js.map +1 -0
- package/dist/cjs/Payload/Wrapper/index.d.ts +2 -0
- package/dist/cjs/Payload/Wrapper/index.js +6 -0
- package/dist/cjs/Payload/Wrapper/index.js.map +1 -0
- package/dist/cjs/Payload/index.d.ts +4 -0
- package/dist/cjs/Payload/index.js +8 -0
- package/dist/cjs/Payload/index.js.map +1 -0
- package/dist/cjs/Payload/models/Body.d.ts +6 -0
- package/dist/cjs/Payload/models/Body.js +3 -0
- package/dist/cjs/Payload/models/Body.js.map +1 -0
- package/dist/cjs/Payload/models/Meta.d.ts +10 -0
- package/dist/cjs/Payload/models/Meta.js +3 -0
- package/dist/cjs/Payload/models/Meta.js.map +1 -0
- package/dist/cjs/Payload/models/WithXyoPayloadMeta.d.ts +4 -0
- package/dist/cjs/Payload/models/WithXyoPayloadMeta.js +3 -0
- package/dist/cjs/Payload/models/WithXyoPayloadMeta.js.map +1 -0
- package/dist/cjs/Payload/models/XyoPayload.d.ts +4 -0
- package/dist/cjs/Payload/models/XyoPayload.js +3 -0
- package/dist/cjs/Payload/models/XyoPayload.js.map +1 -0
- package/dist/cjs/Payload/models/index.d.ts +5 -0
- package/dist/cjs/Payload/models/index.js +3 -0
- package/dist/cjs/Payload/models/index.js.map +1 -0
- package/dist/cjs/Schema/Payload.d.ts +9 -0
- package/dist/cjs/Schema/Payload.js +3 -0
- package/dist/cjs/Schema/Payload.js.map +1 -0
- package/dist/cjs/Schema/index.d.ts +1 -0
- package/dist/cjs/Schema/index.js +5 -0
- package/dist/cjs/Schema/index.js.map +1 -0
- package/dist/cjs/SchemaNameValidator.d.ts +73 -0
- package/dist/cjs/SchemaNameValidator.js +135 -0
- package/dist/cjs/SchemaNameValidator.js.map +1 -0
- package/dist/cjs/Test/index.d.ts +2 -0
- package/dist/cjs/Test/index.js +6 -0
- package/dist/cjs/Test/index.js.map +1 -0
- package/dist/cjs/Test/testBoundWitness.d.ts +3 -0
- package/dist/cjs/Test/testBoundWitness.js +17 -0
- package/dist/cjs/Test/testBoundWitness.js.map +1 -0
- package/dist/cjs/Test/testPayload.d.ts +4 -0
- package/dist/cjs/Test/testPayload.js +19 -0
- package/dist/cjs/Test/testPayload.js.map +1 -0
- package/dist/cjs/Wallet/Account/Account.d.ts +36 -0
- package/dist/cjs/Wallet/Account/Account.js +79 -0
- package/dist/cjs/Wallet/Account/Account.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/Data/AbstractData.d.ts +12 -0
- package/dist/cjs/Wallet/Account/Key/Data/AbstractData.js +16 -0
- package/dist/cjs/Wallet/Account/Key/Data/AbstractData.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/Data/Data.d.ts +15 -0
- package/dist/cjs/Wallet/Account/Key/Data/Data.js +40 -0
- package/dist/cjs/Wallet/Account/Key/Data/Data.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.d.ts +4 -0
- package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.js +3 -0
- package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/Data/index.d.ts +4 -0
- package/dist/cjs/Wallet/Account/Key/Data/index.js +8 -0
- package/dist/cjs/Wallet/Account/Key/Data/index.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.d.ts +3 -0
- package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.js +33 -0
- package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/XyoAddressValue.d.ts +11 -0
- package/dist/cjs/Wallet/Account/Key/XyoAddressValue.js +49 -0
- package/dist/cjs/Wallet/Account/Key/XyoAddressValue.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.d.ts +5 -0
- package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.js +13 -0
- package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/XyoKeyPair.d.ts +10 -0
- package/dist/cjs/Wallet/Account/Key/XyoKeyPair.js +23 -0
- package/dist/cjs/Wallet/Account/Key/XyoKeyPair.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.d.ts +14 -0
- package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.js +56 -0
- package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/XyoPublicKey.d.ts +10 -0
- package/dist/cjs/Wallet/Account/Key/XyoPublicKey.js +22 -0
- package/dist/cjs/Wallet/Account/Key/XyoPublicKey.js.map +1 -0
- package/dist/cjs/Wallet/Account/Key/index.d.ts +5 -0
- package/dist/cjs/Wallet/Account/Key/index.js +9 -0
- package/dist/cjs/Wallet/Account/Key/index.js.map +1 -0
- package/dist/cjs/Wallet/Account/index.d.ts +2 -0
- package/dist/cjs/Wallet/Account/index.js +6 -0
- package/dist/cjs/Wallet/Account/index.js.map +1 -0
- package/dist/cjs/Wallet/Base/Base.d.ts +8 -0
- package/dist/cjs/Wallet/Base/Base.js +37 -0
- package/dist/cjs/Wallet/Base/Base.js.map +1 -0
- package/dist/cjs/Wallet/Base/Words.d.ts +2 -0
- package/dist/cjs/Wallet/Base/Words.js +2644 -0
- package/dist/cjs/Wallet/Base/Words.js.map +1 -0
- package/dist/cjs/Wallet/Base/WordsPayload.d.ts +4 -0
- package/dist/cjs/Wallet/Base/WordsPayload.js +3 -0
- package/dist/cjs/Wallet/Base/WordsPayload.js.map +1 -0
- package/dist/cjs/Wallet/Base/index.d.ts +1 -0
- package/dist/cjs/Wallet/Base/index.js +5 -0
- package/dist/cjs/Wallet/Base/index.js.map +1 -0
- package/dist/cjs/Wallet/index.d.ts +2 -0
- package/dist/cjs/Wallet/index.js +6 -0
- package/dist/cjs/Wallet/index.js.map +1 -0
- package/dist/cjs/Witness/Witness.d.ts +14 -0
- package/dist/cjs/Witness/Witness.js +24 -0
- package/dist/cjs/Witness/Witness.js.map +1 -0
- package/dist/cjs/Witness/index.d.ts +1 -0
- package/dist/cjs/Witness/index.js +5 -0
- package/dist/cjs/Witness/index.js.map +1 -0
- package/dist/cjs/browser/core/Wallet/Web.d.ts +5 -0
- package/dist/cjs/browser/core/Wallet/Web.js +15 -0
- package/dist/cjs/browser/core/Wallet/Web.js.map +1 -0
- package/dist/cjs/browser/core/Wallet/index.d.ts +1 -0
- package/dist/cjs/browser/core/Wallet/index.js +5 -0
- package/dist/cjs/browser/core/Wallet/index.js.map +1 -0
- package/dist/cjs/browser/core/index.d.ts +1 -0
- package/dist/cjs/browser/core/index.js +5 -0
- package/dist/cjs/browser/core/index.js.map +1 -0
- package/dist/cjs/browser/index.d.ts +1 -0
- package/dist/cjs/browser/index.js +5 -0
- package/dist/cjs/browser/index.js.map +1 -0
- package/dist/cjs/browserIndex.d.ts +2 -0
- package/dist/cjs/browserIndex.js +6 -0
- package/dist/cjs/browserIndex.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/dns/DnsRecordType.d.ts +14 -0
- package/dist/cjs/lib/dns/DnsRecordType.js +19 -0
- package/dist/cjs/lib/dns/DnsRecordType.js.map +1 -0
- package/dist/cjs/lib/dns/DnsReturnCode.d.ts +13 -0
- package/dist/cjs/lib/dns/DnsReturnCode.js +18 -0
- package/dist/cjs/lib/dns/DnsReturnCode.js.map +1 -0
- package/dist/cjs/lib/dns/GoogleDnsResult.d.ts +16 -0
- package/dist/cjs/lib/dns/GoogleDnsResult.js +3 -0
- package/dist/cjs/lib/dns/GoogleDnsResult.js.map +1 -0
- package/dist/cjs/lib/dns/GoogleDnsResultAnswer.d.ts +7 -0
- package/dist/cjs/lib/dns/GoogleDnsResultAnswer.js +3 -0
- package/dist/cjs/lib/dns/GoogleDnsResultAnswer.js.map +1 -0
- package/dist/cjs/lib/dns/GoogleDnsResultQuestion.d.ts +10 -0
- package/dist/cjs/lib/dns/GoogleDnsResultQuestion.js +3 -0
- package/dist/cjs/lib/dns/GoogleDnsResultQuestion.js.map +1 -0
- package/dist/cjs/lib/dns/domainExists.d.ts +7 -0
- package/dist/cjs/lib/dns/domainExists.js +19 -0
- package/dist/cjs/lib/dns/domainExists.js.map +1 -0
- package/dist/cjs/lib/dns/domainResolve.d.ts +8 -0
- package/dist/cjs/lib/dns/domainResolve.js +19 -0
- package/dist/cjs/lib/dns/domainResolve.js.map +1 -0
- package/dist/cjs/lib/dns/googleDnsOverHttps.d.ts +4 -0
- package/dist/cjs/lib/dns/googleDnsOverHttps.js +11 -0
- package/dist/cjs/lib/dns/googleDnsOverHttps.js.map +1 -0
- package/dist/cjs/lib/dns/index.d.ts +8 -0
- package/dist/cjs/lib/dns/index.js +12 -0
- package/dist/cjs/lib/dns/index.js.map +1 -0
- package/dist/cjs/lib/dumpErrors.d.ts +2 -0
- package/dist/cjs/lib/dumpErrors.js +10 -0
- package/dist/cjs/lib/dumpErrors.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +4 -0
- package/dist/cjs/lib/index.js +8 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/isBrowser.d.ts +1 -0
- package/dist/cjs/lib/isBrowser.js +8 -0
- package/dist/cjs/lib/isBrowser.js.map +1 -0
- package/dist/cjs/lib/typeOf/TypeOfTypes.d.ts +1 -0
- package/dist/cjs/lib/typeOf/TypeOfTypes.js +3 -0
- package/dist/cjs/lib/typeOf/TypeOfTypes.js.map +1 -0
- package/dist/cjs/lib/typeOf/ifDefined.d.ts +1 -0
- package/dist/cjs/lib/typeOf/ifDefined.js +16 -0
- package/dist/cjs/lib/typeOf/ifDefined.js.map +1 -0
- package/dist/cjs/lib/typeOf/ifTypeOf.d.ts +2 -0
- package/dist/cjs/lib/typeOf/ifTypeOf.js +12 -0
- package/dist/cjs/lib/typeOf/ifTypeOf.js.map +1 -0
- package/dist/cjs/lib/typeOf/index.d.ts +5 -0
- package/dist/cjs/lib/typeOf/index.js +9 -0
- package/dist/cjs/lib/typeOf/index.js.map +1 -0
- package/dist/cjs/lib/typeOf/typeOf.d.ts +2 -0
- package/dist/cjs/lib/typeOf/typeOf.js +8 -0
- package/dist/cjs/lib/typeOf/typeOf.js.map +1 -0
- package/dist/cjs/lib/typeOf/validateType.d.ts +2 -0
- package/dist/cjs/lib/typeOf/validateType.js +18 -0
- package/dist/cjs/lib/typeOf/validateType.js.map +1 -0
- package/dist/cjs/models/WithStringIndex.d.ts +1 -0
- package/dist/cjs/models/WithStringIndex.js +3 -0
- package/dist/cjs/models/WithStringIndex.js.map +1 -0
- package/dist/cjs/models/index.d.ts +1 -0
- package/dist/cjs/models/index.js +5 -0
- package/dist/cjs/models/index.js.map +1 -0
- package/dist/cjs/nodeIndex.d.ts +1 -0
- package/dist/cjs/nodeIndex.js +5 -0
- package/dist/cjs/nodeIndex.js.map +1 -0
- package/dist/cjs/shared.d.ts +10 -0
- package/dist/cjs/shared.js +14 -0
- package/dist/cjs/shared.js.map +1 -0
- package/dist/docs.json +21601 -0
- package/dist/esm/BoundWitness/Builder/Builder.d.ts +22 -0
- package/dist/esm/BoundWitness/Builder/Builder.js +66 -0
- package/dist/esm/BoundWitness/Builder/Builder.js.map +1 -0
- package/dist/esm/BoundWitness/Builder/index.d.ts +1 -0
- package/dist/esm/BoundWitness/Builder/index.js +2 -0
- package/dist/esm/BoundWitness/Builder/index.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/BodyValidator.d.ts +18 -0
- package/dist/esm/BoundWitness/Validator/BodyValidator.js +86 -0
- package/dist/esm/BoundWitness/Validator/BodyValidator.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/MetaValidator.d.ts +14 -0
- package/dist/esm/BoundWitness/Validator/MetaValidator.js +66 -0
- package/dist/esm/BoundWitness/Validator/MetaValidator.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/Validator.d.ts +12 -0
- package/dist/esm/BoundWitness/Validator/Validator.js +41 -0
- package/dist/esm/BoundWitness/Validator/Validator.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/index.d.ts +3 -0
- package/dist/esm/BoundWitness/Validator/index.js +4 -0
- package/dist/esm/BoundWitness/Validator/index.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/ip-regex.d.ts +9 -0
- package/dist/esm/BoundWitness/Validator/ip-regex.js +27 -0
- package/dist/esm/BoundWitness/Validator/ip-regex.js.map +1 -0
- package/dist/esm/BoundWitness/Validator/is-ip.d.ts +4 -0
- package/dist/esm/BoundWitness/Validator/is-ip.js +14 -0
- package/dist/esm/BoundWitness/Validator/is-ip.js.map +1 -0
- package/dist/esm/BoundWitness/Wrapper/Wrapper.d.ts +13 -0
- package/dist/esm/BoundWitness/Wrapper/Wrapper.js +24 -0
- package/dist/esm/BoundWitness/Wrapper/Wrapper.js.map +1 -0
- package/dist/esm/BoundWitness/Wrapper/index.d.ts +1 -0
- package/dist/esm/BoundWitness/Wrapper/index.js +2 -0
- package/dist/esm/BoundWitness/Wrapper/index.js.map +1 -0
- package/dist/esm/BoundWitness/index.d.ts +4 -0
- package/dist/esm/BoundWitness/index.js +5 -0
- package/dist/esm/BoundWitness/index.js.map +1 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.d.ts +11 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.js +2 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.js.map +1 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.d.ts +37 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js +17 -0
- package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js.map +1 -0
- package/dist/esm/BoundWitness/models/Body/index.d.ts +2 -0
- package/dist/esm/BoundWitness/models/Body/index.js +3 -0
- package/dist/esm/BoundWitness/models/Body/index.js.map +1 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.d.ts +13 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.js +2 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.js.map +1 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.d.ts +85 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js +23 -0
- package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js.map +1 -0
- package/dist/esm/BoundWitness/models/Meta/index.d.ts +2 -0
- package/dist/esm/BoundWitness/models/Meta/index.js +3 -0
- package/dist/esm/BoundWitness/models/Meta/index.js.map +1 -0
- package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.d.ts +4 -0
- package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.js +2 -0
- package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.js.map +1 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitness.d.ts +5 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitness.js +2 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitness.js.map +1 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.d.ts +75 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.js +21 -0
- package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.js.map +1 -0
- package/dist/esm/BoundWitness/models/index.d.ts +5 -0
- package/dist/esm/BoundWitness/models/index.js +6 -0
- package/dist/esm/BoundWitness/models/index.js.map +1 -0
- package/dist/esm/Hasher/XyoHasher.d.ts +8 -0
- package/dist/esm/Hasher/XyoHasher.js +24 -0
- package/dist/esm/Hasher/XyoHasher.js.map +1 -0
- package/dist/esm/Hasher/index.d.ts +4 -0
- package/dist/esm/Hasher/index.js +5 -0
- package/dist/esm/Hasher/index.js.map +1 -0
- package/dist/esm/Hasher/removeEmptyFields.d.ts +1 -0
- package/dist/esm/Hasher/removeEmptyFields.js +16 -0
- package/dist/esm/Hasher/removeEmptyFields.js.map +1 -0
- package/dist/esm/Hasher/removeFields.d.ts +6 -0
- package/dist/esm/Hasher/removeFields.js +22 -0
- package/dist/esm/Hasher/removeFields.js.map +1 -0
- package/dist/esm/Hasher/sortFields.d.ts +1 -0
- package/dist/esm/Hasher/sortFields.js +23 -0
- package/dist/esm/Hasher/sortFields.js.map +1 -0
- package/dist/esm/Huri/Huri.d.ts +26 -0
- package/dist/esm/Huri/Huri.js +90 -0
- package/dist/esm/Huri/Huri.js.map +1 -0
- package/dist/esm/Huri/index.d.ts +1 -0
- package/dist/esm/Huri/index.js +2 -0
- package/dist/esm/Huri/index.js.map +1 -0
- package/dist/esm/Payload/Builder/Builder.d.ts +14 -0
- package/dist/esm/Payload/Builder/Builder.js +30 -0
- package/dist/esm/Payload/Builder/Builder.js.map +1 -0
- package/dist/esm/Payload/Builder/index.d.ts +1 -0
- package/dist/esm/Payload/Builder/index.js +2 -0
- package/dist/esm/Payload/Builder/index.js.map +1 -0
- package/dist/esm/Payload/Validator/BodyValidator.d.ts +11 -0
- package/dist/esm/Payload/Validator/BodyValidator.js +27 -0
- package/dist/esm/Payload/Validator/BodyValidator.js.map +1 -0
- package/dist/esm/Payload/Validator/MetaValidator.d.ts +9 -0
- package/dist/esm/Payload/Validator/MetaValidator.js +34 -0
- package/dist/esm/Payload/Validator/MetaValidator.js.map +1 -0
- package/dist/esm/Payload/Validator/Validator.d.ts +11 -0
- package/dist/esm/Payload/Validator/Validator.js +16 -0
- package/dist/esm/Payload/Validator/Validator.js.map +1 -0
- package/dist/esm/Payload/Validator/index.d.ts +3 -0
- package/dist/esm/Payload/Validator/index.js +4 -0
- package/dist/esm/Payload/Validator/index.js.map +1 -0
- package/dist/esm/Payload/Wrapper/Validator.d.ts +9 -0
- package/dist/esm/Payload/Wrapper/Validator.js +15 -0
- package/dist/esm/Payload/Wrapper/Validator.js.map +1 -0
- package/dist/esm/Payload/Wrapper/Wrapper.d.ts +9 -0
- package/dist/esm/Payload/Wrapper/Wrapper.js +15 -0
- package/dist/esm/Payload/Wrapper/Wrapper.js.map +1 -0
- package/dist/esm/Payload/Wrapper/index.d.ts +2 -0
- package/dist/esm/Payload/Wrapper/index.js +3 -0
- package/dist/esm/Payload/Wrapper/index.js.map +1 -0
- package/dist/esm/Payload/index.d.ts +4 -0
- package/dist/esm/Payload/index.js +5 -0
- package/dist/esm/Payload/index.js.map +1 -0
- package/dist/esm/Payload/models/Body.d.ts +6 -0
- package/dist/esm/Payload/models/Body.js +2 -0
- package/dist/esm/Payload/models/Body.js.map +1 -0
- package/dist/esm/Payload/models/Meta.d.ts +10 -0
- package/dist/esm/Payload/models/Meta.js +2 -0
- package/dist/esm/Payload/models/Meta.js.map +1 -0
- package/dist/esm/Payload/models/WithXyoPayloadMeta.d.ts +4 -0
- package/dist/esm/Payload/models/WithXyoPayloadMeta.js +2 -0
- package/dist/esm/Payload/models/WithXyoPayloadMeta.js.map +1 -0
- package/dist/esm/Payload/models/XyoPayload.d.ts +4 -0
- package/dist/esm/Payload/models/XyoPayload.js +2 -0
- package/dist/esm/Payload/models/XyoPayload.js.map +1 -0
- package/dist/esm/Payload/models/index.d.ts +5 -0
- package/dist/esm/Payload/models/index.js +2 -0
- package/dist/esm/Payload/models/index.js.map +1 -0
- package/dist/esm/Schema/Payload.d.ts +9 -0
- package/dist/esm/Schema/Payload.js +2 -0
- package/dist/esm/Schema/Payload.js.map +1 -0
- package/dist/esm/Schema/index.d.ts +1 -0
- package/dist/esm/Schema/index.js +2 -0
- package/dist/esm/Schema/index.js.map +1 -0
- package/dist/esm/SchemaNameValidator.d.ts +73 -0
- package/dist/esm/SchemaNameValidator.js +117 -0
- package/dist/esm/SchemaNameValidator.js.map +1 -0
- package/dist/esm/Test/index.d.ts +2 -0
- package/dist/esm/Test/index.js +3 -0
- package/dist/esm/Test/index.js.map +1 -0
- package/dist/esm/Test/testBoundWitness.d.ts +3 -0
- package/dist/esm/Test/testBoundWitness.js +14 -0
- package/dist/esm/Test/testBoundWitness.js.map +1 -0
- package/dist/esm/Test/testPayload.d.ts +4 -0
- package/dist/esm/Test/testPayload.js +15 -0
- package/dist/esm/Test/testPayload.js.map +1 -0
- package/dist/esm/Wallet/Account/Account.d.ts +36 -0
- package/dist/esm/Wallet/Account/Account.js +71 -0
- package/dist/esm/Wallet/Account/Account.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/Data/AbstractData.d.ts +12 -0
- package/dist/esm/Wallet/Account/Key/Data/AbstractData.js +12 -0
- package/dist/esm/Wallet/Account/Key/Data/AbstractData.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/Data/Data.d.ts +15 -0
- package/dist/esm/Wallet/Account/Key/Data/Data.js +35 -0
- package/dist/esm/Wallet/Account/Key/Data/Data.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.d.ts +4 -0
- package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.js +2 -0
- package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/Data/index.d.ts +4 -0
- package/dist/esm/Wallet/Account/Key/Data/index.js +5 -0
- package/dist/esm/Wallet/Account/Key/Data/index.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/Data/toUint8Array.d.ts +3 -0
- package/dist/esm/Wallet/Account/Key/Data/toUint8Array.js +31 -0
- package/dist/esm/Wallet/Account/Key/Data/toUint8Array.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/XyoAddressValue.d.ts +11 -0
- package/dist/esm/Wallet/Account/Key/XyoAddressValue.js +45 -0
- package/dist/esm/Wallet/Account/Key/XyoAddressValue.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/XyoEllipticKey.d.ts +5 -0
- package/dist/esm/Wallet/Account/Key/XyoEllipticKey.js +8 -0
- package/dist/esm/Wallet/Account/Key/XyoEllipticKey.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/XyoKeyPair.d.ts +10 -0
- package/dist/esm/Wallet/Account/Key/XyoKeyPair.js +18 -0
- package/dist/esm/Wallet/Account/Key/XyoKeyPair.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/XyoPrivateKey.d.ts +14 -0
- package/dist/esm/Wallet/Account/Key/XyoPrivateKey.js +50 -0
- package/dist/esm/Wallet/Account/Key/XyoPrivateKey.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/XyoPublicKey.d.ts +10 -0
- package/dist/esm/Wallet/Account/Key/XyoPublicKey.js +18 -0
- package/dist/esm/Wallet/Account/Key/XyoPublicKey.js.map +1 -0
- package/dist/esm/Wallet/Account/Key/index.d.ts +5 -0
- package/dist/esm/Wallet/Account/Key/index.js +6 -0
- package/dist/esm/Wallet/Account/Key/index.js.map +1 -0
- package/dist/esm/Wallet/Account/index.d.ts +2 -0
- package/dist/esm/Wallet/Account/index.js +3 -0
- package/dist/esm/Wallet/Account/index.js.map +1 -0
- package/dist/esm/Wallet/Base/Base.d.ts +8 -0
- package/dist/esm/Wallet/Base/Base.js +30 -0
- package/dist/esm/Wallet/Base/Base.js.map +1 -0
- package/dist/esm/Wallet/Base/Words.d.ts +2 -0
- package/dist/esm/Wallet/Base/Words.js +2641 -0
- package/dist/esm/Wallet/Base/Words.js.map +1 -0
- package/dist/esm/Wallet/Base/WordsPayload.d.ts +4 -0
- package/dist/esm/Wallet/Base/WordsPayload.js +2 -0
- package/dist/esm/Wallet/Base/WordsPayload.js.map +1 -0
- package/dist/esm/Wallet/Base/index.d.ts +1 -0
- package/dist/esm/Wallet/Base/index.js +2 -0
- package/dist/esm/Wallet/Base/index.js.map +1 -0
- package/dist/esm/Wallet/index.d.ts +2 -0
- package/dist/esm/Wallet/index.js +3 -0
- package/dist/esm/Wallet/index.js.map +1 -0
- package/dist/esm/Witness/Witness.d.ts +14 -0
- package/dist/esm/Witness/Witness.js +16 -0
- package/dist/esm/Witness/Witness.js.map +1 -0
- package/dist/esm/Witness/index.d.ts +1 -0
- package/dist/esm/Witness/index.js +2 -0
- package/dist/esm/Witness/index.js.map +1 -0
- package/dist/esm/browser/core/Wallet/Web.d.ts +5 -0
- package/dist/esm/browser/core/Wallet/Web.js +11 -0
- package/dist/esm/browser/core/Wallet/Web.js.map +1 -0
- package/dist/esm/browser/core/Wallet/index.d.ts +1 -0
- package/dist/esm/browser/core/Wallet/index.js +2 -0
- package/dist/esm/browser/core/Wallet/index.js.map +1 -0
- package/dist/esm/browser/core/index.d.ts +1 -0
- package/dist/esm/browser/core/index.js +2 -0
- package/dist/esm/browser/core/index.js.map +1 -0
- package/dist/esm/browser/index.d.ts +1 -0
- package/dist/esm/browser/index.js +2 -0
- package/dist/esm/browser/index.js.map +1 -0
- package/dist/esm/browserIndex.d.ts +2 -0
- package/dist/esm/browserIndex.js +3 -0
- package/dist/esm/browserIndex.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/dns/DnsRecordType.d.ts +14 -0
- package/dist/esm/lib/dns/DnsRecordType.js +16 -0
- package/dist/esm/lib/dns/DnsRecordType.js.map +1 -0
- package/dist/esm/lib/dns/DnsReturnCode.d.ts +13 -0
- package/dist/esm/lib/dns/DnsReturnCode.js +15 -0
- package/dist/esm/lib/dns/DnsReturnCode.js.map +1 -0
- package/dist/esm/lib/dns/GoogleDnsResult.d.ts +16 -0
- package/dist/esm/lib/dns/GoogleDnsResult.js +2 -0
- package/dist/esm/lib/dns/GoogleDnsResult.js.map +1 -0
- package/dist/esm/lib/dns/GoogleDnsResultAnswer.d.ts +7 -0
- package/dist/esm/lib/dns/GoogleDnsResultAnswer.js +2 -0
- package/dist/esm/lib/dns/GoogleDnsResultAnswer.js.map +1 -0
- package/dist/esm/lib/dns/GoogleDnsResultQuestion.d.ts +10 -0
- package/dist/esm/lib/dns/GoogleDnsResultQuestion.js +2 -0
- package/dist/esm/lib/dns/GoogleDnsResultQuestion.js.map +1 -0
- package/dist/esm/lib/dns/domainExists.d.ts +7 -0
- package/dist/esm/lib/dns/domainExists.js +15 -0
- package/dist/esm/lib/dns/domainExists.js.map +1 -0
- package/dist/esm/lib/dns/domainResolve.d.ts +8 -0
- package/dist/esm/lib/dns/domainResolve.js +15 -0
- package/dist/esm/lib/dns/domainResolve.js.map +1 -0
- package/dist/esm/lib/dns/googleDnsOverHttps.d.ts +4 -0
- package/dist/esm/lib/dns/googleDnsOverHttps.js +7 -0
- package/dist/esm/lib/dns/googleDnsOverHttps.js.map +1 -0
- package/dist/esm/lib/dns/index.d.ts +8 -0
- package/dist/esm/lib/dns/index.js +9 -0
- package/dist/esm/lib/dns/index.js.map +1 -0
- package/dist/esm/lib/dumpErrors.d.ts +2 -0
- package/dist/esm/lib/dumpErrors.js +7 -0
- package/dist/esm/lib/dumpErrors.js.map +1 -0
- package/dist/esm/lib/index.d.ts +4 -0
- package/dist/esm/lib/index.js +5 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/isBrowser.d.ts +1 -0
- package/dist/esm/lib/isBrowser.js +4 -0
- package/dist/esm/lib/isBrowser.js.map +1 -0
- package/dist/esm/lib/typeOf/TypeOfTypes.d.ts +1 -0
- package/dist/esm/lib/typeOf/TypeOfTypes.js +2 -0
- package/dist/esm/lib/typeOf/TypeOfTypes.js.map +1 -0
- package/dist/esm/lib/typeOf/ifDefined.d.ts +1 -0
- package/dist/esm/lib/typeOf/ifDefined.js +12 -0
- package/dist/esm/lib/typeOf/ifDefined.js.map +1 -0
- package/dist/esm/lib/typeOf/ifTypeOf.d.ts +2 -0
- package/dist/esm/lib/typeOf/ifTypeOf.js +8 -0
- package/dist/esm/lib/typeOf/ifTypeOf.js.map +1 -0
- package/dist/esm/lib/typeOf/index.d.ts +5 -0
- package/dist/esm/lib/typeOf/index.js +6 -0
- package/dist/esm/lib/typeOf/index.js.map +1 -0
- package/dist/esm/lib/typeOf/typeOf.d.ts +2 -0
- package/dist/esm/lib/typeOf/typeOf.js +4 -0
- package/dist/esm/lib/typeOf/typeOf.js.map +1 -0
- package/dist/esm/lib/typeOf/validateType.d.ts +2 -0
- package/dist/esm/lib/typeOf/validateType.js +14 -0
- package/dist/esm/lib/typeOf/validateType.js.map +1 -0
- package/dist/esm/models/WithStringIndex.d.ts +1 -0
- package/dist/esm/models/WithStringIndex.js +2 -0
- package/dist/esm/models/WithStringIndex.js.map +1 -0
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +2 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/esm/nodeIndex.d.ts +1 -0
- package/dist/esm/nodeIndex.js +2 -0
- package/dist/esm/nodeIndex.js.map +1 -0
- package/dist/esm/shared.d.ts +10 -0
- package/dist/esm/shared.js +11 -0
- package/dist/esm/shared.js.map +1 -0
- package/jest.config.cjs +25 -0
- package/package.json +117 -0
- package/rollup.config.js +5 -0
- package/src/BoundWitness/Builder/Builder.spec.ts +86 -0
- package/src/BoundWitness/Builder/Builder.ts +83 -0
- package/src/BoundWitness/Builder/index.ts +1 -0
- package/src/BoundWitness/Validator/BodyValidator.spec.ts +10 -0
- package/src/BoundWitness/Validator/BodyValidator.ts +104 -0
- package/src/BoundWitness/Validator/MetaValidator.spec.ts +55 -0
- package/src/BoundWitness/Validator/MetaValidator.ts +75 -0
- package/src/BoundWitness/Validator/Validator.spec.ts +10 -0
- package/src/BoundWitness/Validator/Validator.ts +51 -0
- package/src/BoundWitness/Validator/index.ts +3 -0
- package/src/BoundWitness/Validator/ip-regex.ts +39 -0
- package/src/BoundWitness/Validator/is-ip.ts +17 -0
- package/src/BoundWitness/Wrapper/Wrapper.ts +34 -0
- package/src/BoundWitness/Wrapper/index.ts +1 -0
- package/src/BoundWitness/index.ts +4 -0
- package/src/BoundWitness/models/Body/XyoBoundWitnessBody.ts +13 -0
- package/src/BoundWitness/models/Body/XyoBoundWitnessBodySchema.ts +17 -0
- package/src/BoundWitness/models/Body/index.ts +2 -0
- package/src/BoundWitness/models/Meta/XyoBoundWitnessMeta.ts +15 -0
- package/src/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.ts +24 -0
- package/src/BoundWitness/models/Meta/index.ts +2 -0
- package/src/BoundWitness/models/WithXyoBoundWitnessMeta.ts +6 -0
- package/src/BoundWitness/models/XyoBoundWitness.ts +7 -0
- package/src/BoundWitness/models/XyoBoundWitnessSchema.ts +23 -0
- package/src/BoundWitness/models/index.ts +5 -0
- package/src/Hasher/XyoHasher.ts +30 -0
- package/src/Hasher/index.ts +4 -0
- package/src/Hasher/removeEmptyFields.spec.ts +23 -0
- package/src/Hasher/removeEmptyFields.ts +15 -0
- package/src/Hasher/removeFields.ts +26 -0
- package/src/Hasher/sortFields.ts +24 -0
- package/src/Huri/Huri.spec.ts +93 -0
- package/src/Huri/Huri.ts +143 -0
- package/src/Huri/index.ts +1 -0
- package/src/Payload/Builder/Builder.spec.ts +37 -0
- package/src/Payload/Builder/Builder.ts +42 -0
- package/src/Payload/Builder/index.ts +1 -0
- package/src/Payload/Validator/BodyValidator.spec.ts +10 -0
- package/src/Payload/Validator/BodyValidator.ts +34 -0
- package/src/Payload/Validator/MetaValidator.spec.ts +10 -0
- package/src/Payload/Validator/MetaValidator.ts +38 -0
- package/src/Payload/Validator/Validator.spec.ts +62 -0
- package/src/Payload/Validator/Validator.ts +22 -0
- package/src/Payload/Validator/index.ts +3 -0
- package/src/Payload/Wrapper/Validator.ts +20 -0
- package/src/Payload/Wrapper/Wrapper.ts +20 -0
- package/src/Payload/Wrapper/index.ts +2 -0
- package/src/Payload/index.ts +4 -0
- package/src/Payload/models/Body.ts +7 -0
- package/src/Payload/models/Meta.ts +11 -0
- package/src/Payload/models/WithXyoPayloadMeta.ts +6 -0
- package/src/Payload/models/XyoPayload.ts +6 -0
- package/src/Payload/models/index.ts +6 -0
- package/src/Schema/Payload.ts +10 -0
- package/src/Schema/index.ts +1 -0
- package/src/SchemaNameValidator.ts +128 -0
- package/src/Test/index.ts +2 -0
- package/src/Test/testBoundWitness.ts +16 -0
- package/src/Test/testPayload.ts +17 -0
- package/src/Wallet/Account/Account.spec.ts +91 -0
- package/src/Wallet/Account/Account.ts +96 -0
- package/src/Wallet/Account/Key/Data/AbstractData.ts +22 -0
- package/src/Wallet/Account/Key/Data/Data.ts +45 -0
- package/src/Wallet/Account/Key/Data/XyoDataLike.ts +5 -0
- package/src/Wallet/Account/Key/Data/index.ts +4 -0
- package/src/Wallet/Account/Key/Data/toUint8Array.spec.ts +19 -0
- package/src/Wallet/Account/Key/Data/toUint8Array.ts +41 -0
- package/src/Wallet/Account/Key/XyoAddressValue.ts +51 -0
- package/src/Wallet/Account/Key/XyoEllipticKey.ts +9 -0
- package/src/Wallet/Account/Key/XyoKeyPair.ts +23 -0
- package/src/Wallet/Account/Key/XyoPrivateKey.ts +60 -0
- package/src/Wallet/Account/Key/XyoPublicKey.ts +21 -0
- package/src/Wallet/Account/Key/index.ts +5 -0
- package/src/Wallet/Account/index.ts +2 -0
- package/src/Wallet/Base/Base.spec.ts +10 -0
- package/src/Wallet/Base/Base.ts +35 -0
- package/src/Wallet/Base/Words.ts +2643 -0
- package/src/Wallet/Base/WordsPayload.ts +5 -0
- package/src/Wallet/Base/index.ts +1 -0
- package/src/Wallet/index.ts +2 -0
- package/src/Witness/Witness.spec.ts +13 -0
- package/src/Witness/Witness.ts +28 -0
- package/src/Witness/index.ts +1 -0
- package/src/browser/core/Wallet/Web.spec.ts +9 -0
- package/src/browser/core/Wallet/Web.ts +13 -0
- package/src/browser/core/Wallet/index.ts +1 -0
- package/src/browser/core/index.ts +1 -0
- package/src/browser/index.ts +1 -0
- package/src/browserIndex.ts +2 -0
- package/src/index.ts +2 -0
- package/src/lib/dns/DnsRecordType.ts +14 -0
- package/src/lib/dns/DnsReturnCode.ts +14 -0
- package/src/lib/dns/GoogleDnsResult.ts +17 -0
- package/src/lib/dns/GoogleDnsResultAnswer.ts +8 -0
- package/src/lib/dns/GoogleDnsResultQuestion.ts +11 -0
- package/src/lib/dns/domainExists.ts +15 -0
- package/src/lib/dns/domainResolve.ts +16 -0
- package/src/lib/dns/googleDnsOverHttps.ts +10 -0
- package/src/lib/dns/index.ts +8 -0
- package/src/lib/dumpErrors.ts +7 -0
- package/src/lib/index.ts +4 -0
- package/src/lib/isBrowser.ts +3 -0
- package/src/lib/typeOf/TypeOfTypes.ts +1 -0
- package/src/lib/typeOf/ifDefined.ts +12 -0
- package/src/lib/typeOf/ifTypeOf.ts +9 -0
- package/src/lib/typeOf/index.ts +5 -0
- package/src/lib/typeOf/typeOf.ts +5 -0
- package/src/lib/typeOf/validateType.ts +15 -0
- package/src/models/WithStringIndex.ts +1 -0
- package/src/models/index.ts +1 -0
- package/src/nodeIndex.ts +1 -0
- package/src/shared.ts +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeOf.js","sourceRoot":"","sources":["../../../../src/lib/typeOf/typeOf.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,IAAO,EAAe,EAAE;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { typeOf } from './typeOf';
|
|
2
|
+
export const validateType = (typeName, value, optional = false) => {
|
|
3
|
+
switch (typeOf(value)) {
|
|
4
|
+
case typeName:
|
|
5
|
+
return [value, []];
|
|
6
|
+
default: {
|
|
7
|
+
if (optional && typeOf(value) === 'undefined') {
|
|
8
|
+
return [value, []];
|
|
9
|
+
}
|
|
10
|
+
return [undefined, [Error(`value type is not '${typeName}:${typeof value}'`)]];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=validateType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateType.js","sourceRoot":"","sources":["../../../../src/lib/typeOf/validateType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,QAAqB,EAAE,KAAQ,EAAE,QAAQ,GAAG,KAAK,EAA4B,EAAE;IAC7G,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE;QACrB,KAAK,QAAQ;YACX,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpB,OAAO,CAAC,CAAC;YACP,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;gBAC7C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;aACnB;YACD,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,sBAAsB,QAAQ,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;SAC/E;KACF;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type WithStringIndex<T> = T & Record<string, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WithStringIndex.js","sourceRoot":"","sources":["../../../src/models/WithStringIndex.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './WithStringIndex';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './shared';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeIndex.js","sourceRoot":"","sources":["../../src/nodeIndex.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './BoundWitness';
|
|
2
|
+
export * from './Hasher';
|
|
3
|
+
export * from './Huri';
|
|
4
|
+
export * from './lib';
|
|
5
|
+
export * from './models';
|
|
6
|
+
export * from './Payload';
|
|
7
|
+
export * from './Schema';
|
|
8
|
+
export * from './SchemaNameValidator';
|
|
9
|
+
export * from './Wallet';
|
|
10
|
+
export * from './Witness';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './BoundWitness';
|
|
2
|
+
export * from './Hasher';
|
|
3
|
+
export * from './Huri';
|
|
4
|
+
export * from './lib';
|
|
5
|
+
export * from './models';
|
|
6
|
+
export * from './Payload';
|
|
7
|
+
export * from './Schema';
|
|
8
|
+
export * from './SchemaNameValidator';
|
|
9
|
+
export * from './Wallet';
|
|
10
|
+
export * from './Witness';
|
|
11
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
package/jest.config.cjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const generateJestConfig = ({ esModules }) => {
|
|
2
|
+
const esModuleslist = Array.isArray(esModules) ? esModules.join('|') : esModules
|
|
3
|
+
return {
|
|
4
|
+
globals: {
|
|
5
|
+
'ts-jest': {
|
|
6
|
+
tsconfig: 'tsconfig.test.json',
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
moduleNameMapper: {
|
|
10
|
+
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
11
|
+
},
|
|
12
|
+
preset: 'ts-jest/presets/default-esm',
|
|
13
|
+
setupFiles: ['dotenv/config'],
|
|
14
|
+
setupFilesAfterEnv: ['jest-sorted'],
|
|
15
|
+
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
|
|
16
|
+
testTimeout: 20000,
|
|
17
|
+
transform: {
|
|
18
|
+
[`(${esModuleslist}).+\\.js$`]: 'babel-jest',
|
|
19
|
+
'^.+\\.tsx?$': 'ts-jest/legacy',
|
|
20
|
+
},
|
|
21
|
+
transformIgnorePatterns: [`./node_modules/(?!${esModuleslist})`],
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = generateJestConfig({ esModules: ['is-ip', 'ip-regex', 'lodash-es', 'uuid'] })
|
package/package.json
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": {
|
|
3
|
+
"email": "support@xyo.network",
|
|
4
|
+
"name": "XYO Development Team",
|
|
5
|
+
"url": "https://xyo.network"
|
|
6
|
+
},
|
|
7
|
+
"bugs": {
|
|
8
|
+
"email": "support@xyo.network",
|
|
9
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@ethersproject/providers": "^5.6.5",
|
|
13
|
+
"@xylabs/sdk-js": "^2.5.5",
|
|
14
|
+
"@xyo-network/ethers-wrappers": "^2.6.17",
|
|
15
|
+
"@xyo-network/sdk-xyo-mongo-js": "^2.2.7",
|
|
16
|
+
"@xyo-network/sdk-xyo-typechain": "^1.0.3",
|
|
17
|
+
"ajv": "^8.11.0",
|
|
18
|
+
"axios": "^0.27.2",
|
|
19
|
+
"bn.js": "^5.2.0",
|
|
20
|
+
"bowser": "^2.11.0",
|
|
21
|
+
"elliptic": "^6.5.4",
|
|
22
|
+
"keccak256": "^1.0.6",
|
|
23
|
+
"lodash": "^4.17.21",
|
|
24
|
+
"lru-cache": "^7.10.1",
|
|
25
|
+
"mongodb": "^4.6.0",
|
|
26
|
+
"neo4j-driver": "^4.4.5",
|
|
27
|
+
"neo4j-driver-core": "^4.4.5",
|
|
28
|
+
"pako": "^2.0.4",
|
|
29
|
+
"randombytes": "^2.1.0",
|
|
30
|
+
"sha.js": "^2.4.11",
|
|
31
|
+
"systeminformation": "^5.11.15",
|
|
32
|
+
"ua-parser-js": "^1.0.2",
|
|
33
|
+
"uuid": "^8.3.2"
|
|
34
|
+
},
|
|
35
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@babel/core": "^7.17.10",
|
|
38
|
+
"@babel/preset-env": "^7.17.10",
|
|
39
|
+
"@types/bn.js": "^5.1.0",
|
|
40
|
+
"@types/elliptic": "^6.4.14",
|
|
41
|
+
"@types/jest": "^27.5.1",
|
|
42
|
+
"@types/json-schema": "^7.0.11",
|
|
43
|
+
"@types/lodash": "^4.14.182",
|
|
44
|
+
"@types/lru-cache": "^7.6.1",
|
|
45
|
+
"@types/node": "^17.0.32",
|
|
46
|
+
"@types/pako": "^1.0.3",
|
|
47
|
+
"@types/randombytes": "^2.0.0",
|
|
48
|
+
"@types/sha.js": "^2.4.0",
|
|
49
|
+
"@types/ua-parser-js": "^0.7.36",
|
|
50
|
+
"@types/uuid": "^8.3.4",
|
|
51
|
+
"@xylabs/eslint-config": "^2.3.22",
|
|
52
|
+
"@xylabs/rollup-config": "^1.1.17",
|
|
53
|
+
"@xylabs/ts-scripts": "^1.0.66",
|
|
54
|
+
"@xylabs/tsconfig": "^1.0.13",
|
|
55
|
+
"babel-jest": "^28.1.0",
|
|
56
|
+
"copyfiles": "^2.4.1",
|
|
57
|
+
"dotenv": "^16.0.1",
|
|
58
|
+
"eslint": "^8.15.0",
|
|
59
|
+
"ethers": "^5.6.5",
|
|
60
|
+
"jest": "^28.1.0",
|
|
61
|
+
"jest-environment-jsdom": "^28.1.0",
|
|
62
|
+
"jest-sorted": "^1.0.14",
|
|
63
|
+
"license-checker": "^25.0.1",
|
|
64
|
+
"npm-package-json-lint": "^6.3.0",
|
|
65
|
+
"npm-package-json-lint-config-default": "^5.0.0",
|
|
66
|
+
"rimraf": "^3.0.2",
|
|
67
|
+
"rollbar": "^2.25.0",
|
|
68
|
+
"rollup": "^2.72.1",
|
|
69
|
+
"ts-jest": "^28.0.2",
|
|
70
|
+
"ts-node": "^10.7.0",
|
|
71
|
+
"tslib": "^2.4.0",
|
|
72
|
+
"typedoc": "^0.22.15",
|
|
73
|
+
"typescript": "^4.6.4"
|
|
74
|
+
},
|
|
75
|
+
"browser": "dist/esm/browserIndex.js",
|
|
76
|
+
"docs": "dist/docs.json",
|
|
77
|
+
"exports": {
|
|
78
|
+
".": {
|
|
79
|
+
"node": {
|
|
80
|
+
"import": "./dist/esm/nodeIndex.js",
|
|
81
|
+
"require": "./dist/cjs/nodeIndex.js"
|
|
82
|
+
},
|
|
83
|
+
"browser": {
|
|
84
|
+
"import": "./dist/esm/browserIndex.js",
|
|
85
|
+
"require": "./dist/cjs/browserIndex.js"
|
|
86
|
+
},
|
|
87
|
+
"default": "./dist/esm/index.js"
|
|
88
|
+
},
|
|
89
|
+
"./dist/docs.json": {
|
|
90
|
+
"default": "./dist/docs.json"
|
|
91
|
+
},
|
|
92
|
+
"./package.json": "./package.json"
|
|
93
|
+
},
|
|
94
|
+
"main": "dist/cjs/index.js",
|
|
95
|
+
"module": "dist/esm/index.js",
|
|
96
|
+
"homepage": "https://xyo.network",
|
|
97
|
+
"license": "LGPL-3.0-only",
|
|
98
|
+
"name": "@xyo-network/core",
|
|
99
|
+
"publishConfig": {
|
|
100
|
+
"access": "public"
|
|
101
|
+
},
|
|
102
|
+
"repository": {
|
|
103
|
+
"type": "git",
|
|
104
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
105
|
+
},
|
|
106
|
+
"scripts": {
|
|
107
|
+
"deploy": "yarn deploy3",
|
|
108
|
+
"lint-pkg": "npmPkgJsonLint .",
|
|
109
|
+
"build": "yarn clean && tsc -p tsconfig.build.cjs.json && tsc -p tsconfig.build.esm.json && yarn gen:docs",
|
|
110
|
+
"gen:docs": "typedoc ./src/index.ts --json ./dist/docs.json --tsconfig ./tsconfig.json",
|
|
111
|
+
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
|
|
112
|
+
},
|
|
113
|
+
"sideEffects": true,
|
|
114
|
+
"types": "dist/esm/index.d.ts",
|
|
115
|
+
"version": "2.20.17",
|
|
116
|
+
"packageManager": "yarn@3.1.1"
|
|
117
|
+
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
|
2
|
+
/* eslint-disable sort-keys */
|
|
3
|
+
import { XyoHasher } from '../../Hasher'
|
|
4
|
+
import { XyoPayload } from '../../Payload'
|
|
5
|
+
import { XyoAccount, XyoAddressValue } from '../../Wallet'
|
|
6
|
+
import { XyoBoundWitnessBuilder } from './Builder'
|
|
7
|
+
|
|
8
|
+
const schema = 'network.xyo.temp'
|
|
9
|
+
const payload1: XyoPayload = {
|
|
10
|
+
number_field: 1,
|
|
11
|
+
object_field: {
|
|
12
|
+
number_value: 2,
|
|
13
|
+
string_value: 'yo',
|
|
14
|
+
},
|
|
15
|
+
schema,
|
|
16
|
+
string_field: 'there',
|
|
17
|
+
timestamp: 1618603439107,
|
|
18
|
+
}
|
|
19
|
+
const payload2: XyoPayload = {
|
|
20
|
+
timestamp: 1618603439107,
|
|
21
|
+
string_field: 'there',
|
|
22
|
+
schema,
|
|
23
|
+
object_field: {
|
|
24
|
+
string_value: 'yo',
|
|
25
|
+
number_value: 2,
|
|
26
|
+
},
|
|
27
|
+
number_field: 1,
|
|
28
|
+
}
|
|
29
|
+
const payloads = [payload1, payload2]
|
|
30
|
+
const payloadHash = '3c817871cbf24708703e907dbc344b1b2aefcc3603d14d59c3a35a5c446410d1'
|
|
31
|
+
|
|
32
|
+
describe('XyoBoundWitnessBuilder', () => {
|
|
33
|
+
describe('hash', () => {
|
|
34
|
+
it.each(payloads)('consistently hashes equivalent payload independent of the order of the keys', (payload) => {
|
|
35
|
+
const hash = new XyoHasher(payload).sortedHash()
|
|
36
|
+
expect(hash).toEqual(payloadHash)
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
describe('build', () => {
|
|
40
|
+
describe('_hash', () => {
|
|
41
|
+
it.each(payloads)('consistently hashes equivalent payloads independent of the order of the keys', (payload) => {
|
|
42
|
+
const address = XyoAccount.fromPhrase('test1')
|
|
43
|
+
let builder = new XyoBoundWitnessBuilder()
|
|
44
|
+
expect(builder).toBeDefined()
|
|
45
|
+
builder = builder.witness(address)
|
|
46
|
+
expect(builder).toBeDefined()
|
|
47
|
+
builder = builder.payload(payload)
|
|
48
|
+
expect(builder).toBeDefined()
|
|
49
|
+
|
|
50
|
+
const actual = builder.build()
|
|
51
|
+
|
|
52
|
+
expect(actual).toBeDefined()
|
|
53
|
+
expect(actual._hash).toEqual('7f3203f2d191f12c26cd1aec62b718be8848471f82831a8870f82fc669a5f35b')
|
|
54
|
+
|
|
55
|
+
if (actual._hash && actual._signatures) {
|
|
56
|
+
const addr = new XyoAddressValue(actual.addresses[0])
|
|
57
|
+
expect(addr.hex).toBe(actual.addresses[0])
|
|
58
|
+
const verify = new XyoAddressValue(actual.addresses[0]).verify(actual._hash, actual._signatures[0])
|
|
59
|
+
expect(verify).toBe(true)
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
describe('with inlinePayloads true', () => {
|
|
64
|
+
it('contains the _payloads field', () => {
|
|
65
|
+
const address = XyoAccount.fromPhrase('test2')
|
|
66
|
+
const builder = new XyoBoundWitnessBuilder({ inlinePayloads: true }).witness(address).payload(payload1)
|
|
67
|
+
|
|
68
|
+
const actual = builder.build()
|
|
69
|
+
|
|
70
|
+
expect(actual).toBeDefined()
|
|
71
|
+
expect(actual._payloads).toBeDefined()
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
describe('with inlinePayloads false', () => {
|
|
75
|
+
it('omits the _payloads field', () => {
|
|
76
|
+
const address = XyoAccount.fromPhrase('test3')
|
|
77
|
+
const builder = new XyoBoundWitnessBuilder({ inlinePayloads: false }).witness(address).payload(payload1)
|
|
78
|
+
|
|
79
|
+
const actual = builder.build()
|
|
80
|
+
|
|
81
|
+
expect(actual).toBeDefined()
|
|
82
|
+
expect(actual._payloads).toBeUndefined()
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
})
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { assertEx, Buffer } from '@xylabs/sdk-js'
|
|
2
|
+
|
|
3
|
+
import { sortFields, XyoHasher } from '../../Hasher'
|
|
4
|
+
import { XyoPayload, XyoPayloadBody } from '../../Payload'
|
|
5
|
+
import { XyoAccount } from '../../Wallet'
|
|
6
|
+
import { XyoBoundWitness } from '../models'
|
|
7
|
+
|
|
8
|
+
export interface XyoBoundWitnessBuilderConfig {
|
|
9
|
+
/** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
|
|
10
|
+
readonly inlinePayloads?: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class XyoBoundWitnessBuilder {
|
|
14
|
+
private _accounts: XyoAccount[] = []
|
|
15
|
+
private _payload_schemas: string[] = []
|
|
16
|
+
private _payloads: XyoPayload[] = []
|
|
17
|
+
|
|
18
|
+
constructor(public readonly config: XyoBoundWitnessBuilderConfig = { inlinePayloads: false }) {}
|
|
19
|
+
|
|
20
|
+
private get _payload_hashes(): string[] {
|
|
21
|
+
return this._payloads.map((payload) => {
|
|
22
|
+
return new XyoHasher(payload).sortedHash()
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public witness(account: XyoAccount) {
|
|
27
|
+
this._accounts?.push(account)
|
|
28
|
+
return this
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public payloads(payloads: (XyoPayload | null)[]) {
|
|
32
|
+
payloads.forEach((payload) => {
|
|
33
|
+
if (payload !== null) {
|
|
34
|
+
this.payload(payload)
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
return this
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public payload(payload?: XyoPayload) {
|
|
41
|
+
if (payload) {
|
|
42
|
+
this._payload_schemas.push(payload.schema)
|
|
43
|
+
this._payloads.push(assertEx(sortFields(payload)))
|
|
44
|
+
}
|
|
45
|
+
return this
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public hashableFields(): XyoBoundWitness {
|
|
49
|
+
const addresses = this._accounts.map((account) => account.addressValue.hex)
|
|
50
|
+
const previous_hashes = this._accounts.map((account) => account.previousHash?.hex ?? null)
|
|
51
|
+
return {
|
|
52
|
+
addresses: assertEx(addresses, 'Missing addresses'),
|
|
53
|
+
payload_hashes: assertEx(this._payload_hashes, 'Missing payload_hashes'),
|
|
54
|
+
payload_schemas: assertEx(this._payload_schemas, 'Missing payload_schemas'),
|
|
55
|
+
previous_hashes,
|
|
56
|
+
schema: 'network.xyo.boundwitness',
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private signatures(_hash: string) {
|
|
61
|
+
return this._accounts.map((account) => Buffer.from(account.sign(Buffer.from(_hash, 'hex'))).toString('hex'))
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private inlinePayloads() {
|
|
65
|
+
return this._payloads.map<XyoPayloadBody>((payload, index) => {
|
|
66
|
+
return {
|
|
67
|
+
...payload,
|
|
68
|
+
schema: this._payload_schemas[index],
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public build(): XyoBoundWitness {
|
|
74
|
+
const hashableFields = this.hashableFields() as unknown as Record<string, unknown>
|
|
75
|
+
const _hash = new XyoHasher(hashableFields).sortedHash()
|
|
76
|
+
|
|
77
|
+
const ret = { ...hashableFields, _client: 'js', _hash, _signatures: this.signatures(_hash), _timestamp: Date.now() } as XyoBoundWitness
|
|
78
|
+
if (this.config.inlinePayloads) {
|
|
79
|
+
ret._payloads = this.inlinePayloads()
|
|
80
|
+
}
|
|
81
|
+
return ret
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Builder'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { dumpErrors } from '../../lib'
|
|
2
|
+
import { testBoundWitness } from '../../Test'
|
|
3
|
+
import { XyoBoundWitnessBodyValidator } from './BodyValidator'
|
|
4
|
+
|
|
5
|
+
test('all', () => {
|
|
6
|
+
const validator = new XyoBoundWitnessBodyValidator(testBoundWitness)
|
|
7
|
+
const errors = validator.all()
|
|
8
|
+
dumpErrors(errors)
|
|
9
|
+
expect(errors.length).toBe(0)
|
|
10
|
+
})
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import uniq from 'lodash/uniq'
|
|
2
|
+
|
|
3
|
+
import { XyoHasher } from '../../Hasher'
|
|
4
|
+
import { validateType } from '../../lib'
|
|
5
|
+
import { WithStringIndex } from '../../models'
|
|
6
|
+
import { XyoPayload } from '../../Payload'
|
|
7
|
+
import { XyoSchemaNameValidator } from '../../SchemaNameValidator'
|
|
8
|
+
import { XyoBoundWitnessBody } from '../models'
|
|
9
|
+
|
|
10
|
+
class XyoBoundWitnessBodyValidator {
|
|
11
|
+
private body: WithStringIndex<XyoBoundWitnessBody>
|
|
12
|
+
private payloads?: XyoPayload[]
|
|
13
|
+
constructor(body: XyoBoundWitnessBody, payloads?: XyoPayload[]) {
|
|
14
|
+
this.body = body as WithStringIndex<XyoBoundWitnessBody>
|
|
15
|
+
this.payloads = payloads
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public addressesUniqueness() {
|
|
19
|
+
const errors: Error[] = []
|
|
20
|
+
const { addresses } = this.body
|
|
21
|
+
const uniqAddresses = uniq(addresses)
|
|
22
|
+
if (addresses?.length !== uniqAddresses?.length) errors.push(new Error('addresses must be unique'))
|
|
23
|
+
return errors
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public addresses() {
|
|
27
|
+
const errors: Error[] = []
|
|
28
|
+
const { addresses } = this.body
|
|
29
|
+
if (!addresses?.length) errors.push(new Error('addresses missing [at least one address required]'))
|
|
30
|
+
errors.push(...this.addressesUniqueness())
|
|
31
|
+
return errors
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private validateArrayLength(fieldName: string, compareArrayName: string) {
|
|
35
|
+
const errors: Error[] = []
|
|
36
|
+
|
|
37
|
+
const [array, arrayErrors] = validateType('array', this.body[fieldName] as [], true)
|
|
38
|
+
const [compareArray, compareArrayErrors] = validateType('array', this.body[compareArrayName] as [], true)
|
|
39
|
+
|
|
40
|
+
if (array?.length !== compareArray?.length) {
|
|
41
|
+
errors.push(new Error(`${fieldName}/${compareArrayName} count mismatch [${array?.length} !== ${compareArray?.length}]`))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return [...arrayErrors, ...compareArrayErrors, ...errors]
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public validatePayloadHashesLength() {
|
|
48
|
+
const errors: Error[] = []
|
|
49
|
+
errors.push(...this.validateArrayLength('payload_hashes', 'payload_schemas'))
|
|
50
|
+
return errors
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public validateArrayLengths() {
|
|
54
|
+
const errors: Error[] = []
|
|
55
|
+
errors.push(...this.validatePayloadHashesLength())
|
|
56
|
+
return errors
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public payloadHashes() {
|
|
60
|
+
const errors: Error[] = []
|
|
61
|
+
const passedHashes = this.body.payload_hashes
|
|
62
|
+
this.payloads?.forEach((payload, index) => {
|
|
63
|
+
const calcHash = new XyoHasher(payload).sortedHash()
|
|
64
|
+
const passedHash = passedHashes[index]
|
|
65
|
+
if (calcHash !== passedHash) {
|
|
66
|
+
errors.push(new Error(`hash mismatch [${calcHash} !== ${passedHash}]`))
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
return errors
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public payloadSchemas() {
|
|
73
|
+
const errors: Error[] = []
|
|
74
|
+
const schemaValidators: XyoSchemaNameValidator[] = this.body.payload_schemas.map((schema: string) => {
|
|
75
|
+
return new XyoSchemaNameValidator(schema)
|
|
76
|
+
})
|
|
77
|
+
schemaValidators.forEach((validator) => {
|
|
78
|
+
errors.push(...validator.all())
|
|
79
|
+
})
|
|
80
|
+
return errors
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public previousHashes() {
|
|
84
|
+
const errors: Error[] = []
|
|
85
|
+
return errors
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public schmea() {
|
|
89
|
+
const errors: Error[] = []
|
|
90
|
+
const expectedSchema = 'network.xyo.boundwitness'
|
|
91
|
+
if (this.body.schema !== expectedSchema) {
|
|
92
|
+
errors.push(new Error(`invalid schema [${expectedSchema} !== ${this.body.schema}]`))
|
|
93
|
+
}
|
|
94
|
+
return errors
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
public all() {
|
|
98
|
+
const errors: Error[] = []
|
|
99
|
+
errors.push(...this.addresses(), ...this.validateArrayLengths(), ...this.payloadHashes(), ...this.payloadSchemas(), ...this.previousHashes(), ...this.schmea())
|
|
100
|
+
return errors
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export { XyoBoundWitnessBodyValidator }
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { dumpErrors } from '../../lib'
|
|
2
|
+
import { testBoundWitness } from '../../Test'
|
|
3
|
+
import { XyoBoundWitness } from '../models'
|
|
4
|
+
import { XyoBoundWitnessMetaValidator } from './MetaValidator'
|
|
5
|
+
|
|
6
|
+
describe('XyoBoundWitnessMetaValidator', () => {
|
|
7
|
+
it('Validates valid Meta', () => {
|
|
8
|
+
const validator = new XyoBoundWitnessMetaValidator(testBoundWitness)
|
|
9
|
+
const errors = validator.all()
|
|
10
|
+
dumpErrors(errors)
|
|
11
|
+
expect(errors.length).toBe(0)
|
|
12
|
+
})
|
|
13
|
+
describe('sourceIp', () => {
|
|
14
|
+
it('Validates valid IPv4 Address', () => {
|
|
15
|
+
const bw: XyoBoundWitness = {
|
|
16
|
+
...testBoundWitness,
|
|
17
|
+
_source_ip: '127.0.0.1',
|
|
18
|
+
}
|
|
19
|
+
const validator = new XyoBoundWitnessMetaValidator(bw)
|
|
20
|
+
const errors = validator.all()
|
|
21
|
+
dumpErrors(errors)
|
|
22
|
+
expect(errors.length).toBe(0)
|
|
23
|
+
})
|
|
24
|
+
it('Validates valid IPv6 Address', () => {
|
|
25
|
+
const bw: XyoBoundWitness = {
|
|
26
|
+
...testBoundWitness,
|
|
27
|
+
_source_ip: '2001:0db8:85a3:0000:0000:8a2e:0370:7334',
|
|
28
|
+
}
|
|
29
|
+
const validator = new XyoBoundWitnessMetaValidator(bw)
|
|
30
|
+
const errors = validator.all()
|
|
31
|
+
dumpErrors(errors)
|
|
32
|
+
expect(errors.length).toBe(0)
|
|
33
|
+
})
|
|
34
|
+
it('Handles missing Address', () => {
|
|
35
|
+
const bw: XyoBoundWitness = {
|
|
36
|
+
...testBoundWitness,
|
|
37
|
+
_source_ip: undefined,
|
|
38
|
+
}
|
|
39
|
+
const validator = new XyoBoundWitnessMetaValidator(bw)
|
|
40
|
+
const errors = validator.all()
|
|
41
|
+
dumpErrors(errors)
|
|
42
|
+
expect(errors.length).toBe(0)
|
|
43
|
+
})
|
|
44
|
+
it('Detects invalid Addresses', () => {
|
|
45
|
+
const bw: XyoBoundWitness = {
|
|
46
|
+
...testBoundWitness,
|
|
47
|
+
_source_ip: 'notAnIpAddress',
|
|
48
|
+
}
|
|
49
|
+
const validator = new XyoBoundWitnessMetaValidator(bw)
|
|
50
|
+
const errors = validator.all()
|
|
51
|
+
dumpErrors(errors)
|
|
52
|
+
expect(errors.length).toBe(0)
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
})
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { XyoHasher } from '../../Hasher'
|
|
2
|
+
import { XyoBoundWitness } from '../models'
|
|
3
|
+
import { isIP } from './is-ip'
|
|
4
|
+
|
|
5
|
+
const MIN_ALLOWED_TIMESTAMP = 1609459200000
|
|
6
|
+
const MAX_ALLOWED_TIMESTAMP = 4102444800000
|
|
7
|
+
|
|
8
|
+
export class XyoBoundWitnessMetaValidator {
|
|
9
|
+
private bw: XyoBoundWitness
|
|
10
|
+
constructor(bw: XyoBoundWitness) {
|
|
11
|
+
this.bw = bw
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public client() {
|
|
15
|
+
const errors: Error[] = []
|
|
16
|
+
return errors
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public hash() {
|
|
20
|
+
const errors: Error[] = []
|
|
21
|
+
|
|
22
|
+
const hasher = new XyoHasher(this.bw)
|
|
23
|
+
|
|
24
|
+
const bodyHash = hasher.sortedHash()
|
|
25
|
+
if (bodyHash !== this.bw._hash) errors.push(new Error(`Body hash mismatch: [calculated: ${bodyHash}] [found: ${this.bw._hash}] [sortedStringify: ${hasher.sortedStringify()}]`))
|
|
26
|
+
return errors
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public payloads() {
|
|
30
|
+
const errors: Error[] = []
|
|
31
|
+
return errors
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public signatures() {
|
|
35
|
+
const errors: Error[] = []
|
|
36
|
+
return errors
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public timestamp() {
|
|
40
|
+
const errors: Error[] = []
|
|
41
|
+
const { _timestamp } = this.bw
|
|
42
|
+
if (_timestamp === undefined) errors.push(new Error('Missing _timestamp'))
|
|
43
|
+
else if (_timestamp < MIN_ALLOWED_TIMESTAMP) errors.push(new Error('_timestamp is before year 2021'))
|
|
44
|
+
else if (_timestamp > MAX_ALLOWED_TIMESTAMP) errors.push(new Error('_timestamp is after year 2100'))
|
|
45
|
+
return errors
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public sourceIp() {
|
|
49
|
+
const errors: Error[] = []
|
|
50
|
+
const { _source_ip } = this.bw
|
|
51
|
+
if (_source_ip && !isIP(_source_ip)) {
|
|
52
|
+
errors.push(new Error(`_source_ip invalid format [${_source_ip}]`))
|
|
53
|
+
}
|
|
54
|
+
return errors
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public userAgent() {
|
|
58
|
+
const errors: Error[] = []
|
|
59
|
+
const { _user_agent } = this.bw
|
|
60
|
+
if (!_user_agent) errors.push(new Error('_user_agent missing'))
|
|
61
|
+
return errors
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public all() {
|
|
65
|
+
const errors: Error[] = []
|
|
66
|
+
errors.push(...this.client(), ...this.hash(), ...this.payloads(), ...this.signatures())
|
|
67
|
+
return errors
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public meta() {
|
|
71
|
+
const errors: Error[] = []
|
|
72
|
+
errors.push(...this.timestamp(), ...this.sourceIp(), ...this.userAgent())
|
|
73
|
+
return errors
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { dumpErrors } from '../../lib'
|
|
2
|
+
import { testBoundWitness } from '../../Test'
|
|
3
|
+
import { XyoBoundWitnessValidator } from './Validator'
|
|
4
|
+
|
|
5
|
+
test('all', () => {
|
|
6
|
+
const validator = new XyoBoundWitnessValidator(testBoundWitness)
|
|
7
|
+
const errors = validator.all()
|
|
8
|
+
dumpErrors(errors)
|
|
9
|
+
expect(errors.length).toBe(0)
|
|
10
|
+
})
|