tx · 7cq1tzKCiHvbJbXcZjbv8A4zXnVvjLpxSunqHfS1FXsv 3Mu3e7R5nEBrDEAzznC7h68ffzL5JouGszd: -0.01000000 Waves 2023.09.26 12:24 [2772197] smart account 3Mu3e7R5nEBrDEAzznC7h68ffzL5JouGszd > SELF 0.00000000 Waves
{ "type": 13, "id": "7cq1tzKCiHvbJbXcZjbv8A4zXnVvjLpxSunqHfS1FXsv", "fee": 1000000, "feeAssetId": null, "timestamp": 1695720242823, "version": 2, "chainId": 84, "sender": "3Mu3e7R5nEBrDEAzznC7h68ffzL5JouGszd", "senderPublicKey": "B4bNSdbqghMi7FKwR3XuZzFQQS6wJABczdGZPWZe7Wj5", "proofs": [ "48MHKTp3bWU3hSzRAutut6Vzjnb9NoeGsVmTbciczUjQFhfA7Ft5LDRfR78HRp1yHEvUcoD71edBXkM1nWFmzgVA" ], "script": "base64:BgIhCAISBAoCCAgSBAoCCAESBQoDAgECEgQKAgIBEgQKAggYBwAOZmFjdG9yeUFkZHJlc3MJAKcIAQkBEUBleHRyTmF0aXZlKDEwNTIpAgUEdGhpcwIQZmFjdG9yeVB1YmxpY0tleQAOc2VydmljZUFkZHJlc3MJAKcIAQkBEUBleHRyTmF0aXZlKDEwNTIpAgUOZmFjdG9yeUFkZHJlc3MCEHNlcnZpY2VQdWJsaWNLZXkADG93bmVyQWRkcmVzcwkApwgBCQERQGV4dHJOYXRpdmUoMTA1MikCBQR0aGlzAg5vd25lclB1YmxpY0tleQELb25seUFkZHJlc3MCAWkHYWRkcmVzcwMJAAACCAUBaQZjYWxsZXIFB2FkZHJlc3MGCQEFdGhyb3cAAQhvbmx5VGhpcwEBaQkBC29ubHlBZGRyZXNzAgUBaQUEdGhpcwELb25seVNlcnZpY2UBAWkJAQtvbmx5QWRkcmVzcwIFAWkFDnNlcnZpY2VBZGRyZXNzAQlvbmx5T3duZXIBAWkJAQtvbmx5QWRkcmVzcwIFAWkFDG93bmVyQWRkcmVzcwUBaQELc3RyaW5nRW50cnkCA2tleQN2YWwDCQELb25seVNlcnZpY2UBBQFpCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQN2YWwFA25pbAUDa2V5CQCUCgIFA25pbAUEdW5pdAFpAQxpbnRlZ2VyRW50cnkCA2tleQN2YWwDCQELb25seVNlcnZpY2UBBQFpCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFA2tleQUDdmFsBQNuaWwFA2tleQkAlAoCBQNuaWwFBHVuaXQBaQENdHJhbnNmZXJBc3NldAMOcmVjaXBpZW50Qnl0ZXMGYW1vdW50B2Fzc2V0SWQDCQELb25seVNlcnZpY2UBBQFpCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQ5yZWNpcGllbnRCeXRlcwUGYW1vdW50BQdhc3NldElkBQNuaWwFBmFtb3VudAkAlAoCBQNuaWwFBHVuaXQBaQENdHJhbnNmZXJXYXZlcwIOcmVjaXBpZW50Qnl0ZXMGYW1vdW50AwkBC29ubHlTZXJ2aWNlAQUBaQkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUOcmVjaXBpZW50Qnl0ZXMFBmFtb3VudAUEdW5pdAUDbmlsBQZhbW91bnQJAJQKAgUDbmlsBQR1bml0AWkBBGNhbGwCCGZ1bmN0aW9uBGFyZ3MDCQEJb25seU93bmVyAQUBaQQGcmVzdWx0CQD9BwQFDnNlcnZpY2VBZGRyZXNzBQhmdW5jdGlvbgUEYXJncwgFAWkIcGF5bWVudHMJAJQKAgUDbmlsBQZyZXN1bHQJAJQKAgUDbmlsBQR1bml0AQJ0eAEGdmVyaWZ5AAQMYm90UHVibGljS2V5CQERQGV4dHJOYXRpdmUoMTA1MikCBQ5mYWN0b3J5QWRkcmVzcwIMYm90UHVibGljS2V5BAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAgVPcmRlcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYm90UHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V51W71pQ==", "height": 2772197, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 3vyX3smUzognaBdknxxrn4jNZr4PhXk3P1AG6tw5ihP9 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let factoryAddress = addressFromPublicKey(getBinaryValue(this, "factoryPublicKey")) | |
5 | + | ||
6 | + | let serviceAddress = addressFromPublicKey(getBinaryValue(factoryAddress, "servicePublicKey")) | |
7 | + | ||
8 | + | let ownerAddress = addressFromPublicKey(getBinaryValue(this, "ownerPublicKey")) | |
9 | + | ||
10 | + | func onlyAddress (i,address) = if ((i.caller == address)) | |
11 | + | then true | |
12 | + | else throw() | |
13 | + | ||
14 | + | ||
15 | + | func onlyThis (i) = onlyAddress(i, this) | |
16 | + | ||
17 | + | ||
18 | + | func onlyService (i) = onlyAddress(i, serviceAddress) | |
19 | + | ||
20 | + | ||
21 | + | func onlyOwner (i) = onlyAddress(i, ownerAddress) | |
22 | + | ||
23 | + | ||
24 | + | @Callable(i) | |
25 | + | func stringEntry (key,val) = if (onlyService(i)) | |
26 | + | then $Tuple2([StringEntry(key, val)], key) | |
27 | + | else $Tuple2(nil, unit) | |
28 | + | ||
29 | + | ||
30 | + | ||
31 | + | @Callable(i) | |
32 | + | func integerEntry (key,val) = if (onlyService(i)) | |
33 | + | then $Tuple2([IntegerEntry(key, val)], key) | |
34 | + | else $Tuple2(nil, unit) | |
35 | + | ||
36 | + | ||
37 | + | ||
38 | + | @Callable(i) | |
39 | + | func transferAsset (recipientBytes,amount,assetId) = if (onlyService(i)) | |
40 | + | then $Tuple2([ScriptTransfer(Address(recipientBytes), amount, assetId)], amount) | |
41 | + | else $Tuple2(nil, unit) | |
42 | + | ||
43 | + | ||
44 | + | ||
45 | + | @Callable(i) | |
46 | + | func transferWaves (recipientBytes,amount) = if (onlyService(i)) | |
47 | + | then $Tuple2([ScriptTransfer(Address(recipientBytes), amount, unit)], amount) | |
48 | + | else $Tuple2(nil, unit) | |
49 | + | ||
50 | + | ||
51 | + | ||
52 | + | @Callable(i) | |
53 | + | func call (function,args) = if (onlyOwner(i)) | |
54 | + | then { | |
55 | + | let result = reentrantInvoke(serviceAddress, function, args, i.payments) | |
56 | + | $Tuple2(nil, result) | |
57 | + | } | |
58 | + | else $Tuple2(nil, unit) | |
59 | + | ||
60 | + | ||
61 | + | @Verifier(tx) | |
62 | + | func verify () = { | |
63 | + | let botPublicKey = getBinaryValue(factoryAddress, "botPublicKey") | |
64 | + | match tx { | |
65 | + | case _: Order => | |
66 | + | sigVerify(tx.bodyBytes, tx.proofs[0], botPublicKey) | |
67 | + | case _ => | |
68 | + | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
69 | + | } | |
70 | + | } | |
71 | + |
github/deemru/w8io/026f985 28.27 ms ◑