UNPKG

@veive-io/mod-sign-mnemonic-as

Version:
44 lines (37 loc) 1.93 kB
import { System, Protobuf, StringBytes } from "@koinos/sdk-as"; import { modsign } from "@veive-io/mod-sign-as"; import { IModSign as ModSign } from "@veive-io/mod-sign-as"; export class ModSignMnemonic extends ModSign { /** * Validates an ECDSA signature to ensure the authenticity of a transaction. * * This method checks the length of the provided signature, recovers the public key from the signature * and transaction ID, and verifies that the recovered address matches the expected sender. * * @external */ is_valid_signature(args: modsign.is_valid_signature_args): modsign.is_valid_signature_result { const argsBuffer = Protobuf.encode(args, modsign.is_valid_signature_args.encode); const callRes = System.call(this._contractId, 0x4ab7a4bb, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'ModSignMnemonic.is_valid_signature': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new modsign.is_valid_signature_result(); return Protobuf.decode<modsign.is_valid_signature_result>(callRes.res.object, modsign.is_valid_signature_result.decode); } /** * @external * @readonly */ manifest(): modsign.manifest { const argsBuffer = new Uint8Array(0); const callRes = System.call(this._contractId, 0x05b3abf2, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'ModSignMnemonic.manifest': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new modsign.manifest(); return Protobuf.decode<modsign.manifest>(callRes.res.object, modsign.manifest.decode); } }