blobAdd = rule(
{ self: DID, blob: Content },
Result({ ok: Site, error: record({ message: String }) })
)(function* (input) {
const location = yield* memory.allocate(this, {
space: input.self,
blob: input.blob
});
const put = yield* http.put(this, {
url: location.await().ok.address.url,
headers: location.await().ok.address.headers,
body: input.blob
});
const content = yield* memory.commit(this, {
space: input.self,
blob: input.blob
});
const site = content.await().ok.site;
return { ok: { site } };
})