tx · 33fthRjYtqCmCuct8LSwe36gE6ka3wNMX5dYdAZWDbxa

3N37eLdtWjhS31FGHvu2HpGLreF11i58Bv6:  -0.01000000 Waves

2023.02.23 15:36 [2462313] smart account 3N37eLdtWjhS31FGHvu2HpGLreF11i58Bv6 > SELF 0.00000000 Waves

{ "type": 13, "id": "33fthRjYtqCmCuct8LSwe36gE6ka3wNMX5dYdAZWDbxa", "fee": 1000000, "feeAssetId": null, "timestamp": 1677155798688, "version": 2, "chainId": 84, "sender": "3N37eLdtWjhS31FGHvu2HpGLreF11i58Bv6", "senderPublicKey": "3pW4h7e3NAcqGkvc1AyziZLMPSsG2eXvCGU7vLxPXkaq", "proofs": [ "3meP8TiXMwG1xk2mSUDv7mTfHtTmW53drskLY1intG91LgSXGEcbkZ35owkA8FJNNEUdFmHL2vbWAbYXLzA9Bc41" ], "script": "base64:BgIMCAISABIAEgQKAgEBAwAWYnN0VXNkdEFzc2V0U3RvcmFnZUtleQIOYnN0VXNkdEFzc2V0SWQAFmJzdFN1cmZBc3NldFN0b3JhZ2VLZXkCDmJzdFN1cmZBc3NldElkARNjb252ZXJ0VG9CeXRlVmVjdG9yAQRkYXRhBAckbWF0Y2gwBQRkYXRhAwkAAQIFByRtYXRjaDACBlN0cmluZwQDc3RyBQckbWF0Y2gwCQCbAwEFA3N0cgkAAgECIUV4cGVjdGVkIHRoYXQgZGF0YSB3aWxsIGJlIHN0cmluZwMBaQEEY2FsbAAEBWFzc2V0CQDDCAcCBUFzc2V0AgAAZAAIBgUEdW5pdAAABAdhc3NldElkCQC4CAEFBWFzc2V0CQDMCAIJAQtCaW5hcnlFbnRyeQICA2JpbgEACQDMCAIJAQxCb29sZWFuRW50cnkCAgRib29sBgkAzAgCCQEMSW50ZWdlckVudHJ5AgIDaW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgIDc3RyAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQIDc3RyCQDMCAIFBWFzc2V0BQNuaWwBaQELaXNzdWVBc3NldHMABAdic3RVc2R0CQDDCAcCDGJzdFVzZHRUZXN0MQIAAMCEPQAGBgUEdW5pdAAABA5ic3RVc2R0QXNzZXRJZAkAuAgBBQdic3RVc2R0BAdic3RTdXJmCQDDCAcCDGJzdFN1cmZUZXN0MQIAAMCEPQAGBgUEdW5pdAABBA5ic3RTdXJmQXNzZXRJZAkAuAgBBQdic3RTdXJmCQDMCAIJAQtTdHJpbmdFbnRyeQIFFmJzdFVzZHRBc3NldFN0b3JhZ2VLZXkJANgEAQUOYnN0VXNkdEFzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUWYnN0U3VyZkFzc2V0U3RvcmFnZUtleQkA2AQBBQ5ic3RTdXJmQXNzZXRJZAkAzAgCCQELQmluYXJ5RW50cnkCAghUZXN0RGF0YQUOYnN0U3VyZkFzc2V0SWQJAMwIAgUHYnN0VXNkdAkAzAgCBQdic3RTdXJmBQNuaWwBaQEdc2VuZEludGVybmFsQXNzZXRzVG9UaGVDYWxsZXICAmlkBmFtb3VudAQHYXNzZXRJZAMJAAACBQJpZAAACQCiCAEFFmJzdFVzZHRBc3NldFN0b3JhZ2VLZXkDCQAAAgUCaWQAAQkAoggBBRZic3RTdXJmQXNzZXRTdG9yYWdlS2V5CQACAQIOV3JvbmcgQXNzZXQgSWQEB2JhbGFuY2UJAPAHAgUEdGhpcwkBE2NvbnZlcnRUb0J5dGVWZWN0b3IBBQdhc3NldElkAwkAZwIFB2JhbGFuY2UFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAkBE2NvbnZlcnRUb0J5dGVWZWN0b3IBBQdhc3NldElkBQNuaWwJAAIBAhJJbnN1ZmZpY2llbnQgZnVuZHMBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5JbG+xg==", "height": 2462313, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HAsKxCaCRej3YdKh8QDtjUsNPJpU4GJaSB3jRggpwAjY Next: BDv3FRwC5wKi6cKaUHMaZ4CF1mN5okqqFuvJVVgWyGwW Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let bstUsdtAssetStorageKey = "bstUsdtAssetId"
5+
6+let bstSurfAssetStorageKey = "bstSurfAssetId"
7+
8+func convertToByteVector (data) = match data {
9+ case str: String =>
10+ toBytes(str)
11+ case _ =>
12+ throw("Expected that data will be string")
13+}
414
515
616 @Callable(i)
1828 let bstUsdtAssetId = calculateAssetId(bstUsdt)
1929 let bstSurf = Issue("bstSurfTest1", "", 1000000, 6, true, unit, 1)
2030 let bstSurfAssetId = calculateAssetId(bstSurf)
21-[StringEntry("bstUsdtAssetId", toBase58String(bstUsdtAssetId)), StringEntry("bstSurfAssetId", toBase58String(bstSurfAssetId)), bstUsdt, bstSurf]
31+[StringEntry(bstUsdtAssetStorageKey, toBase58String(bstUsdtAssetId)), StringEntry(bstSurfAssetStorageKey, toBase58String(bstSurfAssetId)), BinaryEntry("TestData", bstSurfAssetId), bstUsdt, bstSurf]
32+ }
33+
34+
35+
36+@Callable(i)
37+func sendInternalAssetsToTheCaller (id,amount) = {
38+ let assetId = if ((id == 0))
39+ then getString(bstUsdtAssetStorageKey)
40+ else if ((id == 1))
41+ then getString(bstSurfAssetStorageKey)
42+ else throw("Wrong Asset Id")
43+ let balance = assetBalance(this, convertToByteVector(assetId))
44+ if ((balance >= amount))
45+ then [ScriptTransfer(i.caller, amount, convertToByteVector(assetId))]
46+ else throw("Insufficient funds")
2247 }
2348
2449
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let bstUsdtAssetStorageKey = "bstUsdtAssetId"
5+
6+let bstSurfAssetStorageKey = "bstSurfAssetId"
7+
8+func convertToByteVector (data) = match data {
9+ case str: String =>
10+ toBytes(str)
11+ case _ =>
12+ throw("Expected that data will be string")
13+}
414
515
616 @Callable(i)
717 func call () = {
818 let asset = Issue("Asset", "", 100, 8, true, unit, 0)
919 let assetId = calculateAssetId(asset)
1020 [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset]
1121 }
1222
1323
1424
1525 @Callable(i)
1626 func issueAssets () = {
1727 let bstUsdt = Issue("bstUsdtTest1", "", 1000000, 6, true, unit, 0)
1828 let bstUsdtAssetId = calculateAssetId(bstUsdt)
1929 let bstSurf = Issue("bstSurfTest1", "", 1000000, 6, true, unit, 1)
2030 let bstSurfAssetId = calculateAssetId(bstSurf)
21-[StringEntry("bstUsdtAssetId", toBase58String(bstUsdtAssetId)), StringEntry("bstSurfAssetId", toBase58String(bstSurfAssetId)), bstUsdt, bstSurf]
31+[StringEntry(bstUsdtAssetStorageKey, toBase58String(bstUsdtAssetId)), StringEntry(bstSurfAssetStorageKey, toBase58String(bstSurfAssetId)), BinaryEntry("TestData", bstSurfAssetId), bstUsdt, bstSurf]
32+ }
33+
34+
35+
36+@Callable(i)
37+func sendInternalAssetsToTheCaller (id,amount) = {
38+ let assetId = if ((id == 0))
39+ then getString(bstUsdtAssetStorageKey)
40+ else if ((id == 1))
41+ then getString(bstSurfAssetStorageKey)
42+ else throw("Wrong Asset Id")
43+ let balance = assetBalance(this, convertToByteVector(assetId))
44+ if ((balance >= amount))
45+ then [ScriptTransfer(i.caller, amount, convertToByteVector(assetId))]
46+ else throw("Insufficient funds")
2247 }
2348
2449
2550 @Verifier(tx)
2651 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
2752

github/deemru/w8io/169f3d6 
31.93 ms