tx · 5vyfJaT1JVV48X9PtZUuV4kJ7tKgU1MZdY8CzEB9XYS6

3P8ScM8vDYv3YK1QhFMbF4LsbZTRSowSQLx:  -0.01000000 Waves

2022.12.30 02:52 [3447770] smart account 3P8ScM8vDYv3YK1QhFMbF4LsbZTRSowSQLx > SELF 0.00000000 Waves

{ "type": 13, "id": "5vyfJaT1JVV48X9PtZUuV4kJ7tKgU1MZdY8CzEB9XYS6", "fee": 1000000, "feeAssetId": null, "timestamp": 1672357991198, "version": 1, "sender": "3P8ScM8vDYv3YK1QhFMbF4LsbZTRSowSQLx", "senderPublicKey": "ERKkYKnafViKTn8uQkz9XhvosihQ5XyXkRCm2ztrjZey", "proofs": [ "2zRtfYFyj4CfbKqVcqAEYsppVjeoUqHHYnHuZYq2VRP7xMqNQLdGzmy1dQZrni49B1jfxK4jCpyjxmQPfcJx3VqM" ], "script": "base64:BgIICAISABIAEgAKAA9wcmljZU9yYWNsZUFkZHICIzNQNUJmZDU4UFBmTnZCTTJIeThRZmJjRHFNZU50emc3S2ZQABB3YXZlc1N0YWtpbmdBZGRyCQEHQWRkcmVzcwEBGgFXoyiI2DNNxQuiVigXCjaIui8gSQpYtfJmAAxjb250cmFjdEFkZHIJAQdBZGRyZXNzAQEaAVdHb48pk7rLi/UXbb7NrzcYeXNfrQPGPwkAC29yYWNsZUluZGV4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUPcHJpY2VPcmFjbGVBZGRyAgtwcmljZV9pbmRleAIURXJyb3I6IE5vIHByaWNlIGRhdGEAEG9yYWNsZUluZGV4QmxvY2sJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBBQ9wcmljZU9yYWNsZUFkZHIJAKwCAgIMcHJpY2VfaW5kZXhfCQCkAwEFC29yYWNsZUluZGV4AhRFcnJvcjogTm8gcHJpY2UgZGF0YQATb3JhY2xlV2F2ZXNQcmljZVVTRAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFD3ByaWNlT3JhY2xlQWRkcgkArAICAgZwcmljZV8JAKQDAQUQb3JhY2xlSW5kZXhCbG9jawIURXJyb3I6IE5vIHByaWNlIGRhdGEAB3Rva2VuSWQJAKEIAQIHdG9rZW5JZAEQZ2V0VG9rZW5RdWFudGl0eQAEByRtYXRjaDAJAOwHAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBQd0b2tlbklkAhFFcnJvcjogTm8gdG9rZW5JZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEkNhbiBub3QgZmluZCB0b2tlbgEPZ2V0QmFja2luZ1JhdGlvAAQKY29sbGF0ZXJhbAkAawMICQDvBwEFDGNvbnRyYWN0QWRkcgdyZWd1bGFyBRNvcmFjbGVXYXZlc1ByaWNlVVNEAMCEPQkAawMFCmNvbGxhdGVyYWwAAQkBEGdldFRva2VuUXVhbnRpdHkAAQ9zdGFrZUNvbGxhdGVyYWwABA1hY3RpdmVMZWFzZUlkCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMCDWFjdGl2ZUxlYXNlSWQCAAQRYWN0aXZlTGVhc2VBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIRYWN0aXZlTGVhc2VBbW91bnQAAAQGbmV3QW10CQBkAgkAZQIICQDvBwEFDGNvbnRyYWN0QWRkcglhdmFpbGFibGUAwJaxAgURYWN0aXZlTGVhc2VBbW91bnQECG5ld0xlYXNlCQDECAIFEHdhdmVzU3Rha2luZ0FkZHIFBm5ld0FtdAQKbmV3TGVhc2VJZAkAuQgBBQhuZXdMZWFzZQkAzggCAwkBAiE9AgUNYWN0aXZlTGVhc2VJZAIACQDMCAIJAQtMZWFzZUNhbmNlbAEJANkEAQUNYWN0aXZlTGVhc2VJZAUDbmlsBQNuaWwDCQBmAgUGbmV3QW10AAAJAMwIAgUIbmV3TGVhc2UJAMwIAgkBC1N0cmluZ0VudHJ5AgINYWN0aXZlTGVhc2VJZAkA2AQBBQpuZXdMZWFzZUlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFhY3RpdmVMZWFzZUFtb3VudAUGbmV3QW10BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgINYWN0aXZlTGVhc2VJZAIACQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFhY3RpdmVMZWFzZUFtb3VudAAABQNuaWwDAWkBC2NvbnN0cnVjdG9yAAMJAQIhPQIFB3Rva2VuSWQFBHVuaXQJAAIBAipFcnJvcjogQ29uc3RydWN0b3IgYWxyZWFkeSBoYXMgYmVlbiBjYWxsZWQEBWlzc3VlCQDCCAUCBFRlc3QCBFRlc3QAAAAIBgQCaWQJALgIAQUFaXNzdWUJAJQKAgkAzAgCBQVpc3N1ZQkAzAgCCQELQmluYXJ5RW50cnkCAgd0b2tlbklkBQJpZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIRdG90YWxfY2lyY3VsYXRpbmcAAAUDbmlsBQR1bml0AWkBD3N3YXBXYXZlc1RvVGVzdAADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiNFcnJvcjogT25seSBvbmUgcGF5bWVudCBpcyByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAADCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkCQACAQIvRXJyb3I6IE9ubHkgV2F2ZXMgdG9rZW4gaXMgYWxsb3dlZCBmb3Igc3dhcHBpbmcEC2lzc3VlQW1vdW50CQBrAwgFA3BtdAZhbW91bnQFE29yYWNsZVdhdmVzUHJpY2VVU0QAwIQ9BBF0b3RhbF9jaXJjdWxhdGluZwkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQIRdG90YWxfY2lyY3VsYXRpbmcAAAULaXNzdWVBbW91bnQJAM4IAgkBD3N0YWtlQ29sbGF0ZXJhbAAJAMwIAgkBDEludGVnZXJFbnRyeQICEXRvdGFsX2NpcmN1bGF0aW5nBRF0b3RhbF9jaXJjdWxhdGluZwkAzAgCCQEHUmVpc3N1ZQMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUHdG9rZW5JZAISRXJyb3I6IG5vIHRva2VuIGlkBQtpc3N1ZUFtb3VudAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtpc3N1ZUFtb3VudAUHdG9rZW5JZAUDbmlsAWkBD3N3YXBUZXN0VG9XYXZlcwADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiNFcnJvcjogT25seSBvbmUgcGF5bWVudCBpcyByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAADCQECIT0CCAUDcG10B2Fzc2V0SWQFB3Rva2VuSWQJAAIBAi5FcnJvcjogT25seSBUZXN0IHRva2VuIGlzIGFsbG93ZWQgZm9yIHN3YXBwaW5nBAt3YXZlc0Ftb3VudAkAawMIBQNwbXQGYW1vdW50AMCEPQUTb3JhY2xlV2F2ZXNQcmljZVVTRAkAzAgCCQEEQnVybgIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUHdG9rZW5JZAISRXJyb3I6IG5vIHRva2VuIGlkCAUDcG10BmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFC3dhdmVzQW1vdW50BQR1bml0BQNuaWwAzbI8wQ==", "chainId": 87, "height": 3447770, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GsZf1EKDaMPwKamqYVs93mrvdxhF3mxdUcq8sLNgBu36 Next: 49eJTW95Pt91ZeRbi34nmSem7UaYpTL53xntVjLGEpBE Diff:
OldNewDifferences
2525
2626 func getBackingRatio () = {
2727 let collateral = fraction(wavesBalance(contractAddr).regular, oracleWavesPriceUSD, 1000000)
28- fraction(collateral, 100000000, getTokenQuantity())
28+ fraction(collateral, 1, getTokenQuantity())
2929 }
3030
3131
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let priceOracleAddr = "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP"
55
66 let wavesStakingAddr = Address(base58'3PGobRuQzBY9VbeKLaZqrcQtW26wrE9jFm7')
77
88 let contractAddr = Address(base58'3P8ScM8vDYv3YK1QhFMbF4LsbZTRSowSQLx')
99
1010 let oracleIndex = valueOrErrorMessage(getInteger(addressFromStringValue(priceOracleAddr), "price_index"), "Error: No price data")
1111
1212 let oracleIndexBlock = valueOrErrorMessage(getInteger(addressFromStringValue(priceOracleAddr), ("price_index_" + toString(oracleIndex))), "Error: No price data")
1313
1414 let oracleWavesPriceUSD = valueOrErrorMessage(getInteger(addressFromStringValue(priceOracleAddr), ("price_" + toString(oracleIndexBlock))), "Error: No price data")
1515
1616 let tokenId = getBinary("tokenId")
1717
1818 func getTokenQuantity () = match assetInfo(valueOrErrorMessage(tokenId, "Error: No tokenId")) {
1919 case asset: Asset =>
2020 asset.quantity
2121 case _ =>
2222 throw("Can not find token")
2323 }
2424
2525
2626 func getBackingRatio () = {
2727 let collateral = fraction(wavesBalance(contractAddr).regular, oracleWavesPriceUSD, 1000000)
28- fraction(collateral, 100000000, getTokenQuantity())
28+ fraction(collateral, 1, getTokenQuantity())
2929 }
3030
3131
3232 func stakeCollateral () = {
3333 let activeLeaseId = valueOrElse(getString(this, "activeLeaseId"), "")
3434 let activeLeaseAmount = valueOrElse(getInteger(this, "activeLeaseAmount"), 0)
3535 let newAmt = ((wavesBalance(contractAddr).available - 5000000) + activeLeaseAmount)
3636 let newLease = Lease(wavesStakingAddr, newAmt)
3737 let newLeaseId = calculateLeaseId(newLease)
3838 ((if ((activeLeaseId != ""))
3939 then [LeaseCancel(fromBase58String(activeLeaseId))]
4040 else nil) ++ (if ((newAmt > 0))
4141 then [newLease, StringEntry("activeLeaseId", toBase58String(newLeaseId)), IntegerEntry("activeLeaseAmount", newAmt)]
4242 else [StringEntry("activeLeaseId", ""), IntegerEntry("activeLeaseAmount", 0)]))
4343 }
4444
4545
4646 @Callable(i)
4747 func constructor () = if ((tokenId != unit))
4848 then throw("Error: Constructor already has been called")
4949 else {
5050 let issue = Issue("Test", "Test", 0, 8, true)
5151 let id = calculateAssetId(issue)
5252 $Tuple2([issue, BinaryEntry("tokenId", id), IntegerEntry("total_circulating", 0)], unit)
5353 }
5454
5555
5656
5757 @Callable(i)
5858 func swapWavesToTest () = if ((size(i.payments) != 1))
5959 then throw("Error: Only one payment is required")
6060 else {
6161 let pmt = value(i.payments[0])
6262 if (isDefined(pmt.assetId))
6363 then throw("Error: Only Waves token is allowed for swapping")
6464 else {
6565 let issueAmount = fraction(pmt.amount, oracleWavesPriceUSD, 1000000)
6666 let total_circulating = (valueOrElse(getInteger("total_circulating"), 0) + issueAmount)
6767 (stakeCollateral() ++ [IntegerEntry("total_circulating", total_circulating), Reissue(valueOrErrorMessage(tokenId, "Error: no token id"), issueAmount, true), ScriptTransfer(i.caller, issueAmount, tokenId)])
6868 }
6969 }
7070
7171
7272
7373 @Callable(i)
7474 func swapTestToWaves () = if ((size(i.payments) != 1))
7575 then throw("Error: Only one payment is required")
7676 else {
7777 let pmt = value(i.payments[0])
7878 if ((pmt.assetId != tokenId))
7979 then throw("Error: Only Test token is allowed for swapping")
8080 else {
8181 let wavesAmount = fraction(pmt.amount, 1000000, oracleWavesPriceUSD)
8282 [Burn(valueOrErrorMessage(tokenId, "Error: no token id"), pmt.amount), ScriptTransfer(i.caller, wavesAmount, unit)]
8383 }
8484 }
8585
8686

github/deemru/w8io/6500d08 
33.04 ms