2 spendUTXOAction, spendWalletAction, controlProgramAction,
3 controlAddressAction, listDappUTXO, updateUtxo ,updateBalances,
7 depositProgram, profitProgram, assetDeposited, assetBill, gas
8 } from "../../constants";
10 export function FixedLimitDeposit(account, amount, address) {
11 return new Promise((resolve, reject) => {
13 "program": depositProgram,
16 const billAmount = resp.amount
17 const billAsset = resp.asset
18 const utxo = resp.hash
20 if(amount > billAmount){
21 throw 'input amount must be smaller or equal to ' + billAmount +'.'
26 const args = contractArguments(amount, address)
28 input.push(spendUTXOAction(utxo))
29 input.push(spendWalletAction(amount, assetDeposited))
31 if(amount < billAmount){
32 output.push(controlProgramAction(amount, assetDeposited, profitProgram))
33 output.push(controlAddressAction(amount, billAsset, address))
34 output.push(controlProgramAction((billAmount-amount), billAsset, depositProgram))
36 output.push(controlProgramAction(amount, assetDeposited, profitProgram))
37 output.push(controlAddressAction(billAmount, billAsset, address))
40 window.bytom.advancedTransfer(account, input, output, gas*10000000, args)
42 if(resp.action === 'reject'){
43 reject('user reject the request')
44 }else if(resp.action === 'success'){
45 updateUtxo({"hash": utxo})
49 "asset": assetDeposited,