tx · 7F4q2mgA9gK3jQBjM29vZYdfxroK5UtHoAPKs2TMtnUA

3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr:  -0.01000000 Waves

2023.07.14 17:59 [3731347] smart account 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr > SELF 0.00000000 Waves

{ "type": 13, "id": "7F4q2mgA9gK3jQBjM29vZYdfxroK5UtHoAPKs2TMtnUA", "fee": 1000000, "feeAssetId": null, "timestamp": 1689346854490, "version": 2, "chainId": 87, "sender": "3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr", "senderPublicKey": "A5AvSRrbVauQKBhPtuWTLTQdE5ka4nVCSDaVANpFur26", "proofs": [ "bx6BZDyrH91jYxs8Go28HkGFcwZcb5k2ipP2GnUmsKvHRdyrTWHF14rHAKHhrnQx4KkMHno7UREBc64vxnn6Gsg" ], "script": "base64:BgIKCAISABIAEgASAAwAAmQ4AIDC1y8ABnBvb2xJZAEaAVf1RmgngA1o304mdXq0odMoMeAJv/V5eTcACnBvb2xTdHJpbmcJANgEAQUGcG9vbElkAApvcGVyYXRpb25zARoBV2n+SaaIkBd5AP0uMuAzytUpkKjXIkNH7QAJd2hpcmxwb29sASBZ443cwrUjukoU3MTQrxQJ5mTmBL4lBgsmTuVQbZdZxwAFd2F2ZXMBBBOr2TMAC3dhdmVzaW5wb29sCQERQGV4dHJOYXRpdmUoMTA1MCkCCQEHQWRkcmVzcwEFBnBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlAAxwcm9qZWN0c3Rha2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgICIzNQQWttSm5pTWdubkFlajVwWWYyakZZa0NiWm93NXB0OXRyAgxfaW5kZXhTdGFrZWQACnRvdGFsc3Rha2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAAKdHZsaW53YXZlcwkAawMJAGgCBQt3YXZlc2lucG9vbAAKBQxwcm9qZWN0c3Rha2UFCnRvdGFsc3Rha2UAD3doaXJscG9vbHN1cHBseQQHJG1hdGNoMAkA7AcBBQl3aGlybHBvb2wDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0AAVwcmljZQMJAGcCCQBkAgkAawMJAGQCBQp0dmxpbndhdmVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBQJkOAUPd2hpcmxwb29sc3VwcGx5BQJkOAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzCQBkAgkAawMJAGQCBQp0dmxpbndhdmVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBQJkOAUPd2hpcmxwb29sc3VwcGx5BQJkOAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzBAFpARVidXlXSElSTFBPT0x3aXRoV0FWRVMABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHc3VycGx1cwkAawMJAGUCBQVwcmljZQUCZDgIBQNwbXQGYW1vdW50BQJkOAQMdG9PcGVyYXRpb25zCQBrAwkAZQIIBQNwbXQGYW1vdW50BQdzdXJwbHVzCQBrAwAZBQJkOAAJCQBoAgBkBQJkOAQMc3VwcGx5YW1vdW50CQBpAgkAZQIJAGUCCAUDcG10BmFtb3VudAUMdG9PcGVyYXRpb25zBQdzdXJwbHVzAAQEBmFtb3VudAkAawMIBQNwbXQGYW1vdW50BQJkOAUFcHJpY2UDCQECIT0CCAUDcG10B2Fzc2V0SWQFBHVuaXQJAAIBAhdhdHRhY2ggV0FWRVMgdG9rZW4gb25seQQTU3VwcGx5V2F2ZXNNYWluUG9vbAkA/AcECQEHQWRkcmVzcwEBGgFXIJRcSq3P9Eg5O4hAs7/b7oxQoKdqz9roAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUTU3VwcGx5V2F2ZXNNYWluUG9vbAUTU3VwcGx5V2F2ZXNNYWluUG9vbAQYU3VwcGx5V2F2ZXNXYXZlc0RlZmlQb29sCQD8BwQJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4CBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxzdXBwbHlhbW91bnQFA25pbAMJAAACBRhTdXBwbHlXYXZlc1dhdmVzRGVmaVBvb2wFGFN1cHBseVdhdmVzV2F2ZXNEZWZpUG9vbAQTU3VwcGx5V2F2ZXNOZXdXYXZlcwkA/AcECQEHQWRkcmVzcwEBGgFXrmAU0mZwDPA/3HTF0nTmGr6p4FLB6guQAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUTU3VwcGx5V2F2ZXNOZXdXYXZlcwUTU3VwcGx5V2F2ZXNOZXdXYXZlcwQSU3VwcGx5V2F2ZXNWaXJlc1YyCQD8BwQJAQdBZGRyZXNzAQEaAVdVGw6be8HzjlJwwYt+dc4KpxC5C8V0AvUCB2RlcG9zaXQJAMwIAgIjM1BNWWFkeTdLelVOblJyRkd6TUJucTdha01EV2lDUXlvUXoJAMwIAgYFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUSU3VwcGx5V2F2ZXNWaXJlc1YyBRJTdXBwbHlXYXZlc1ZpcmVzVjIJAMwIAgkBB1JlaXNzdWUDBQl3aGlybHBvb2wJAGQCBQZhbW91bnQJAGkCBQZhbW91bnQABAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZhbW91bnQFCXdoaXJscG9vbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFCm9wZXJhdGlvbnMJAGkCBQZhbW91bnQABAUJd2hpcmxwb29sCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUKb3BlcmF0aW9ucwUMdG9PcGVyYXRpb25zBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiJzdXJwbHVzIHRyZWFzdXJ5IHZhbHVlIGluIHdhdmVsZXRzBQp0dmxpbndhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZXSElSTFBPT0wgdG90YWwgc3VwcGx5BQ93aGlybHBvb2xzdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAGQCBQdzdXJwbHVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESUHJpY2VTdXJwbHVzU3VwcGx5AAkAzAgCCQEMSW50ZWdlckVudHJ5AgINV0FWRVMgaW4gcG9vbAULd2F2ZXNpbnBvb2wJAMwIAgkBDEludGVnZXJFbnRyeQICDHByb2plY3RzdGFrZQUMcHJvamVjdHN0YWtlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgp0b3RhbHN0YWtlBQp0b3RhbHN0YWtlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiJzdXJwbHVzIHRyZWFzdXJ5IHZhbHVlIGluIHdhdmVsZXRzBQp0dmxpbndhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZXSElSTFBPT0wgdG90YWwgc3VwcGx5BQ93aGlybHBvb2xzdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFA25pbAFpAQZkRW50cnkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzCQBoAgABBQJkOAkAzAgCCQEMSW50ZWdlckVudHJ5AgIic3VycGx1cyB0cmVhc3VyeSB2YWx1ZSBpbiB3YXZlbGV0cwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZXSElSTFBPT0wgdG90YWwgc3VwcGx5BQ93aGlybHBvb2xzdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMAAAUDbmlsAWkBE1Bvb2xPbmVUb2tlblN1cnBsdXMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQNc3VycGx1c2Ftb3VudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwQTUG9vbE9uZVRva2VuU3VycGx1cwkA/AcECQEHQWRkcmVzcwEBGgFX/SXDvU5hlEHvul4SY4/FOW9JtYg69eltAiFnZW5lcmF0ZUluZGV4V2l0aE9uZVRva2VuQW5kU3Rha2UJAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQ1zdXJwbHVzYW1vdW50BQNuaWwDCQAAAgUTUG9vbE9uZVRva2VuU3VycGx1cwUTUG9vbE9uZVRva2VuU3VycGx1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAZQIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFDXN1cnBsdXNhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAOorlT", "height": 3731347, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 74msFsH4PsFs3XYS3Cg548f3bTbAkKYmhtuH2ZDCZKwb Next: 9FdLX9QKguTGYescu9nDi56QCVQxXyrGGYnZCihv38tC Diff:
OldNewDifferences
3636 func buyWHIRLPOOLwithWAVES () = {
3737 let pmt = value(i.payments[0])
3838 let surplus = fraction((price - d8), pmt.amount, d8)
39- let toOperations = fraction(pmt.amount, fraction(25, d8, 9), (100 * d8))
39+ let toOperations = fraction((pmt.amount - surplus), fraction(25, d8, 9), (100 * d8))
4040 let supplyamount = (((pmt.amount - toOperations) - surplus) / 4)
4141 let amount = fraction(pmt.amount, d8, price)
4242 if ((pmt.assetId != unit))
8383 then throw("access only by project owner")
8484 else {
8585 let surplusamount = getIntegerValue(this, "surplus received in wavelets")
86- let PoolOneTokenSurplus = invoke(Address(poolId), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
86+ let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
8787 if ((PoolOneTokenSurplus == PoolOneTokenSurplus))
8888 then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))]
8989 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let d8 = 100000000
55
66 let poolId = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
77
88 let poolString = toBase58String(poolId)
99
1010 let operations = base58'3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e'
1111
1212 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
1313
1414 let waves = base58'WAVES'
1515
1616 let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(waves)) + "_balance"))
1717
1818 let projectstake = getIntegerValue(Address(poolId), ("3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr" + "_indexStaked"))
1919
2020 let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount")
2121
2222 let tvlinwaves = fraction((wavesinpool * 10), projectstake, totalstake)
2323
2424 let whirlpoolsupply = match assetInfo(whirlpool) {
2525 case asset: Asset =>
2626 asset.quantity
2727 case _ =>
2828 throw("Can't find asset")
2929 }
3030
3131 let price = if (((fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8) >= getIntegerValue(this, "WHIRLPOOL issue price in wavelets")))
3232 then (fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8)
3333 else getIntegerValue(this, "WHIRLPOOL issue price in wavelets")
3434
3535 @Callable(i)
3636 func buyWHIRLPOOLwithWAVES () = {
3737 let pmt = value(i.payments[0])
3838 let surplus = fraction((price - d8), pmt.amount, d8)
39- let toOperations = fraction(pmt.amount, fraction(25, d8, 9), (100 * d8))
39+ let toOperations = fraction((pmt.amount - surplus), fraction(25, d8, 9), (100 * d8))
4040 let supplyamount = (((pmt.amount - toOperations) - surplus) / 4)
4141 let amount = fraction(pmt.amount, d8, price)
4242 if ((pmt.assetId != unit))
4343 then throw("attach WAVES token only")
4444 else {
4545 let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
4646 if ((SupplyWavesMainPool == SupplyWavesMainPool))
4747 then {
4848 let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
4949 if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool))
5050 then {
5151 let SupplyWavesNewWaves = invoke(Address(base58'3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
5252 if ((SupplyWavesNewWaves == SupplyWavesNewWaves))
5353 then {
5454 let SupplyWavesViresV2 = invoke(Address(base58'3P9gtaWVnxA2TgFkvFMQSHPyfyNssjLGx5A'), "deposit", ["3PMYady7KzUNnRrFGzMBnq7akMDWiCQyoQz", true], [AttachedPayment(unit, supplyamount)])
5555 if ((SupplyWavesViresV2 == SupplyWavesViresV2))
5656 then [Reissue(whirlpool, (amount + (amount / 4)), true), ScriptTransfer(i.caller, amount, whirlpool), ScriptTransfer(Address(operations), (amount / 4), whirlpool), ScriptTransfer(Address(operations), toOperations, unit), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", (surplus + getIntegerValue(this, "surplus received in wavelets")))]
5757 else throw("Strict value is not equal to itself.")
5858 }
5959 else throw("Strict value is not equal to itself.")
6060 }
6161 else throw("Strict value is not equal to itself.")
6262 }
6363 else throw("Strict value is not equal to itself.")
6464 }
6565 }
6666
6767
6868
6969 @Callable(i)
7070 func PriceSurplusSupply () = [IntegerEntry("WAVES in pool", wavesinpool), IntegerEntry("projectstake", projectstake), IntegerEntry("totalstake", totalstake), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", getIntegerValue(this, "surplus received in wavelets"))]
7171
7272
7373
7474 @Callable(i)
7575 func dEntry () = if ((i.caller != this))
7676 then throw("access only by project owner")
7777 else [IntegerEntry("WHIRLPOOL issue price in wavelets", (1 * d8)), IntegerEntry("surplus treasury value in wavelets", 0), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", 0)]
7878
7979
8080
8181 @Callable(i)
8282 func PoolOneTokenSurplus () = if ((i.caller != this))
8383 then throw("access only by project owner")
8484 else {
8585 let surplusamount = getIntegerValue(this, "surplus received in wavelets")
86- let PoolOneTokenSurplus = invoke(Address(poolId), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
86+ let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
8787 if ((PoolOneTokenSurplus == PoolOneTokenSurplus))
8888 then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))]
8989 else throw("Strict value is not equal to itself.")
9090 }
9191
9292

github/deemru/w8io/3ef1775 
35.03 ms