UNPKG

cosmic-lib

Version:

A JavaScript implementation of the CosmicLink protocol for Stellar

57 lines (44 loc) 1.57 kB
As CosmicLinks syntax is straightforward, it may feel more convenient to write a few routines to produce them without relying on any additional dependency. ## XDR links ```js const config = { page: 'https://cosmic.link/', network: 'test' } function makeXdrUri (xdr) { return config.page + '?xdr=' + xdr + '&network=' + config.network } const uri = makeXdrUri('AAA...A==') ``` ## Single-operation links ```js const config = { page: 'https://cosmic.link/' } function makeOperationUri (operation, arguments) { var query = '?' + operation for (let field in arguments) { query += '&' + field + '=' + encodeURIComponent(arguments[field]) } return config.page + query } const uri = makeOperationUri('payment', { memo: 'donation', destination: 'tips*cosmic.link', amount: '20' }) ``` ## Multi-operation links ```js const config = { page: 'https://cosmic.link/' } function makeTransactionUrl (page, transactionFields, operations) { var query = '?transaction' for (let field in transactionFields) { query += '&' + field + '=' + encodeURIComponent(transactionFields[field]) } operations.forEach(function (entry) { for (let field in entry) { query += '&' + field + '=' + encodeURIComponent(entry[field]) } }) return config.page + query } const uri = makeTransactionUrl({ memo: 'text:Example', minTime: '2018-07' }, [ { operation: 'setOptions', homeDomain: 'https://stellar.org' }, { operation: 'manageData', name: 'updated', value: 'yes' }, { operation: 'manageData', name: 'userID', value: '737' } ]) ```