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:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# 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 | + | } | |
4 | 14 | ||
5 | 15 | ||
6 | 16 | @Callable(i) | |
18 | 28 | let bstUsdtAssetId = calculateAssetId(bstUsdt) | |
19 | 29 | let bstSurf = Issue("bstSurfTest1", "", 1000000, 6, true, unit, 1) | |
20 | 30 | 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") | |
22 | 47 | } | |
23 | 48 | ||
24 | 49 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# 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 | + | } | |
4 | 14 | ||
5 | 15 | ||
6 | 16 | @Callable(i) | |
7 | 17 | func call () = { | |
8 | 18 | let asset = Issue("Asset", "", 100, 8, true, unit, 0) | |
9 | 19 | let assetId = calculateAssetId(asset) | |
10 | 20 | [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset] | |
11 | 21 | } | |
12 | 22 | ||
13 | 23 | ||
14 | 24 | ||
15 | 25 | @Callable(i) | |
16 | 26 | func issueAssets () = { | |
17 | 27 | let bstUsdt = Issue("bstUsdtTest1", "", 1000000, 6, true, unit, 0) | |
18 | 28 | let bstUsdtAssetId = calculateAssetId(bstUsdt) | |
19 | 29 | let bstSurf = Issue("bstSurfTest1", "", 1000000, 6, true, unit, 1) | |
20 | 30 | 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") | |
22 | 47 | } | |
23 | 48 | ||
24 | 49 | ||
25 | 50 | @Verifier(tx) | |
26 | 51 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
27 | 52 |
github/deemru/w8io/169f3d6 31.93 ms ◑![]()