heimdall-tide
Version:
SDK for communicating with a Tide Enclave
34 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const js_1 = require("@tideorg/js");
const TideMemory = js_1.Tools.TideMemory;
const BaseTideRequest = js_1.Models.BaseTideRequest;
const Policy = js_1.Models.Policy;
const GenericResourceAccessThresholdRoleContract = js_1.Contracts.GenericResourceAccessThresholdRoleContract;
const forsetiType = "forseti";
const forsetiEntryType = "Contract";
class PolicySignRequest extends BaseTideRequest {
constructor(name, version, authFlow, draft, dyanmicData) {
super(name, version, authFlow, draft, dyanmicData);
}
static New(policy) {
const p = new PolicySignRequest("Policy", "1", "Policy:1", TideMemory.CreateFromArray([policy.toBytes()]), new TideMemory());
p.new_policy = policy;
return p;
}
addForsetiContractToUpload(source) {
const te = new TextEncoder();
const s = typeof source === "string" ? te.encode(source) : source;
const innerPayload = TideMemory.CreateFromArray([s, te.encode(forsetiEntryType)]);
const forsetiData = TideMemory.CreateFromArray([new Uint8Array(0), innerPayload]);
const contractTransport = TideMemory.CreateFromArray([te.encode(forsetiType), forsetiData]);
const draft = TideMemory.CreateFromArray([this.new_policy.toBytes(), contractTransport]);
this.draft = draft;
return this;
}
getRequestedPolicy() {
return Policy.from(this.draft.GetValue(0));
}
}
exports.default = PolicySignRequest;
//# sourceMappingURL=PolicySignRequest.js.map