Skip to main content

Create a Document

Create a New Document​

Documents are broken down into named sections which hold the contents of the document. Sections can be raw text, IPFS links, API links, or any combination thereof. A document can be roughly visualized with the layout below:

Document Title​

Document Subtitle

section_namecontent
sectionaText here
sectionbMore text here
sectioncA little more text

To begin, the document author must call the newdocument action on the amend.decide contract.

ACTION newdocument​

Fee: 50.000 TLOS​

Parameter NameTypeExampleDescription
titlestring"Doc1"The title of the document
subtitlestring"A small example document"The subtitle of the document
document_namenamedoc1The name identifier for the document
authornametestaccount1The telos account of the author
initial_sectionsmap<name, string>{ sectiona : "Text here", sectionb: "More text here", sectionc: "A little more text" } ...The document broken down into a mapping of section names to section content.
cleos push action amend.decide newdocument '{ ... }' -p author
(async () => {
const result = await api.transact({
actions: [{
account: 'amend.decide',
name: 'newdocument',
authorization: [{
actor: '...',
permission: 'active',
}],
data: {
title: 'Doc1',
subtitle: 'A small example document',
document_name: 'doc1',
author: 'testaccount1',
initial_sections: [
{
"key": "sectiona",
"value": "Text here"
},
{
"key": "sectionb",
"value": "More text here"
},
{
"key": "sectionc",
"value": "A little more text"
}
]
},
}]
}, {
blocksBehind: 3,
expireSeconds: 30,
});
console.dir(result);
})();

Editing Title and Subtitle​

At any time, the author may alter the document title or the subtitle. To do so, the author must call the editheader action on the amend.decide contract. To leave a title or subtitle the same, simply copy the existing text into the appropriate parameter.

ACTION editheader​

Parameter NameTypeExampleDescription
document_namenamedoc1The name of the document header to edit.
new_titlestring"New Title"The new document title.
new_subtitlestring"New Subtitle"The new document subtitle.
cleos push action amend.decide editheader '{ ... }' -p author
(async () => {
const result = await api.transact({
actions: [{
account: 'amend.decide',
name: 'editheader',
authorization: [{
actor: '...',
permission: 'active',
}],
data: {
document_name: 'doc1',
new_title: 'New Title',
new_subtitle: 'New Subtitle'
},
}]
}, {
blocksBehind: 3,
expireSeconds: 30,
});
console.dir(result);
})();

Changing Authors​

A document author may relinquish authorship to another account with the updateauthor action.

ACTION updateauthor​

Parameter NameTypeExampleDescription
document_namenamedoc1The name of the document to change the author for.
new_authornamenewauthor1The name of the Telos account of the new author.
cleos push action amend.decide updateauthor '{ ... }' -p author
(async () => {
const result = await api.transact({
actions: [{
account: 'amend.decide',
name: 'updateauthor',
authorization: [{
actor: '...',
permission: 'active',
}],
data: {
document_name: 'doc1',
new_author: 'newauthor1'
},
}]
}, {
blocksBehind: 3,
expireSeconds: 30,
});
console.dir(result);
})();