diff --git a/index.html b/index.html
index d870aa5..99d4f9e 100644
--- a/index.html
+++ b/index.html
@@ -2951,7 +2951,7 @@
}
}
- function createSmartContract() {
+ async function createSmartContract() {
const { type, subtype } = pagesData.params
const contractName = document.getElementById('contract_name').value.trim().replace(/\s+/g, '-')
const creatorPrivateKey = document.getElementById('contract_creator_private_key').value.trim()
@@ -2983,26 +2983,31 @@
payeeAddressesShare[payeeAddress] = payeeShare
})
// check if payeeAddresses total share is equal to 100 else add remainder
- const payeeAddresses = Object.keys(payeeAddressesShare)
- const totalShare = payeeAddresses.reduce((acc, payeeAddress) => acc + payeeAddressesShare[payeeAddress], 0)
- if (totalShare !== 100) {
- getConfirmation('Total share is not equal to 100', {
+ const payeeAddressesArray = Object.keys(payeeAddressesShare)
+ const totalShare = payeeAddressesArray.reduce((acc, payeeAddress) => acc + payeeAddressesShare[payeeAddress], 0)
+ if (totalShare < 100) {
+ console.log('total share is not equal to 100')
+ const res = await getConfirmation('Total share is not equal to 100', {
message: `Total share is not equal to 100. Do you want to add remainder to the last payee address?`,
confirmText: 'Add remainder',
cancelText: 'Cancel'
- }).then((res) => {
- if (!res) return
- const remainder = 100 - totalShare
- const lastPayeeAddress = payeeAddresses[payeeAddresses.length - 1]
- payeeAddressesShare[lastPayeeAddress] += remainder
- const lastPayeeInput = document.getElementById('payee_container').lastElementChild.querySelector('.payee-share')
- if (lastPayeeInput) {
- lastPayeeInput.value = payeeAddressesShare[lastPayeeAddress]
- lastPayeeInput.scrollIntoView({ behavior: 'smooth', block: 'center' })
- }
})
+ if (!res) return
+ const remainder = 100 - totalShare
+ const lastPayeeAddress = payeeAddressesArray[payeeAddressesArray.length - 1]
+ payeeAddressesShare[lastPayeeAddress] += remainder
+ const lastPayeeInput = document.getElementById('payee_container').lastElementChild.querySelector('.payee-share')
+ if (lastPayeeInput) {
+ lastPayeeInput.value = payeeAddressesShare[lastPayeeAddress]
+ lastPayeeInput.scrollIntoView({ behavior: 'smooth', block: 'center' })
+ }
+ return
+ } else if (totalShare > 100) {
+ return notify(`Total share cannot be greater than 100`, 'error')
}
- floData = `Create a smart contract of the name ${contractName}@ of the type one-time-event* using asset ${contractAsset}# at the FLO address ${creatorAddress}$ with contract-conditions: (1) expiryTime= ${new Date(contractExpiration).toString()} (2) payeeAddress= ${JSON.stringify(payeeAddressesShare)} ${contractParticipationAmount ? `(3) contractamount = ${contractParticipationAmount}` : ''} ${contractMinSubAmount ? `(4) minimumsubscriptionamount = ${contractMinSubAmount}` : ''} ${contractMaxSubAmount ? `(5) maximumsubscriptionamount = ${contractMaxSubAmount}` : ''} end-contract-conditions`
+ const payeeAddressesShareString = Object.entries(payeeAddressesShare).map(([payeeAddress, payeeShare]) => `${payeeAddress}:${payeeShare}`).join(':')
+ console.log(payeeAddressesShareString)
+ floData = `Create a smart contract of the name ${contractName}@ of the type one-time-event* using asset ${contractAsset}# at the FLO address ${creatorAddress}$ with contract-conditions: (1) expiryTime= ${new Date(contractExpiration).toString()} (2) payeeAddress= ${payeeAddressesShareString} ${contractParticipationAmount ? `(3) contractamount = ${contractParticipationAmount}` : ''} ${contractMinSubAmount ? `(4) minimumsubscriptionamount = ${contractMinSubAmount}` : ''} ${contractMaxSubAmount ? `(5) maximumsubscriptionamount = ${contractMaxSubAmount}` : ''} end-contract-conditions`
if (floData.length > 1040) return notify(`Too many payee addresses! remove some and try again`, 'error')
confirmationMessage = `Name: ${contractName} \nType: One-time event \nSubtype: Time trigger \nAsset: ${contractAsset} \nExpiration: ${new Date(contractExpiration).toString()} \nPayee addresses: ${Object.entries(payeeAddressesShare).reduce((str, [address, share]) => `${address}: ${share}%`, '')} \nParticipation amount: ${contractParticipationAmount} ${contractAsset} \nMin subscription amount: ${contractMinSubAmount} ${contractAsset} \nMax subscription amount: ${contractMaxSubAmount} ${contractAsset}`
break;
@@ -3013,7 +3018,7 @@
if (userChoiceValue !== '')
userChoices.add(userChoiceValue)
})
- floData = `Create a smart contract of the name ${contractName}@ of the type one-time-event* using asset ${contractAsset}# at the FLO address ${creatorAddress}$ with contract-conditions:(1) expiryTime= ${new Date(contractExpiration).toString()} (2) userchoices= ${[...userChoices].join(' | ')} ${contractParticipationAmount ? `(3) contractamount = ${contractParticipationAmount}` : ''} ${contractMinSubAmount ? `(4) minimumsubscriptionamount = ${contractMinSubAmount}` : ''} ${contractMaxSubAmount ? `(5) maximumsubscriptionamount = ${contractMaxSubAmount}` : ''} end-contract-conditions`
+ floData = `Create a smart contract of the name ${contractName}@ of the type one-time-event* using asset ${contractAsset}# at the FLO address ${creatorAddress}$ with contract-conditions:(1) expiryTime= ${new Date(contractExpiration).toString()} (2) userchoices= ${[...userChoices].join(' | ')} ${contractParticipationAmount ? `(3) contractamount = ${contractParticipationAmount}` : ''} ${contractMinSubAmount ? `(4) minimumsubscriptionamount = ${contractMinSubAmount}` : ''} ${contractMaxSubAmount ? `(5) maximumsubscriptionamount = ${contractMaxSubAmount}` : ''} end-contract-conditions`
if (floData.length > 1040) return notify(`Too many participant choices! remove some and try again`, 'error')
confirmationMessage = `Name: ${contractName} \nType: One-time event \nSubtype: External trigger \nAsset: ${contractAsset} \nExpiration: ${new Date(contractExpiration).toString()} \nParticipant choices: ${[...userChoices].join(' | ')} \nParticipation amount: ${contractParticipationAmount} ${contractAsset} \nMin subscription amount: ${contractMinSubAmount} ${contractAsset} \nMax subscription amount: ${contractMaxSubAmount} ${contractAsset}`
break;