@veive-io/mod-sign-mnemonic-as
Version:
## **Overview**
44 lines (37 loc) • 1.93 kB
text/typescript
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);
}
}