You only need 1 of each!
singletons- single instances that are shared across your application's components.
transaction object provides your applications lender/borrower-facing view (registered as the
$.interfaceUrl property in your product configuration) with the necessary handles to model your application's transactional interaction with the EPC platform. It allows you to access an interactive session's origination context, create a new transaction, update an existing transaction, create events/messages for a transaction, and more.
let transactionObject = await elli.script.getObject('transaction')
application object provides your lender/borrower-facing view (registered as the
$.interfaceUrl property in your product configuration) with the necessary handles to discover the host application's capabilities, enabling the user to perform certain actions, and invoke certain features of the host application (such as launching its document viewer).
let applicationObject = await elli.script.getObject('application')
transactionTemplate object provides your application's administrator-facing view (registered as the
$.adminInterfaceUrl property in your product configuration) with the necessary handles for enabling Lender administrators to create transaction request templates, which they can associate with a 1-click/automated ordering business condition set.
let transactionTemplateObject = await elli.script.getObject('transactionTemplate')