tx · BWK6naMiFjVZcVb5GgNMRzD5k2xurD5hV1X67XAUMAJP

3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy:  -0.00300000 Waves

2023.03.31 12:41 [3579530] smart account 3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy > SELF 0.00000000 Waves

{ "type": 13, "id": "BWK6naMiFjVZcVb5GgNMRzD5k2xurD5hV1X67XAUMAJP", "fee": 300000, "feeAssetId": null, "timestamp": 1680255690437, "version": 1, "sender": "3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy", "senderPublicKey": "BnSujow6hJrVGBci5QG71JU7GKwyCVdhyxrrM4LPrYP7", "proofs": [ "5dKyUcCMd4XyVqMoNhrgZPGdCh84wKkgF9Hv12DoQDKvnM7SYqGLR3ebgHx8S1N3ov6ZksUJ3XYUswcHaAuyDkQc" ], "script": "base64:BgIcCAISCAoGAQEBCAgIEgQKAggBEgMKAQgSAwoBCAoBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBEHdyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUDa2V5CQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlCQACAQkArAICAhVhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQASY29uZmlnQWRkcmVzc1N0b3JlAgZjb25maWcADWNvbmZpZ0FkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUSY29uZmlnQWRkcmVzc1N0b3JlAhhjb25maWcgYWRkcmVzcyBub3QgZm91bmQCFmludmFsaWQgY29uZmlnIGFkZHJlc3MABkhFSUdIVAUGaGVpZ2h0AQdhbGxvd2VkAQJvcAkA/AcEBQ1jb25maWdBZGRyZXNzAglvcEFsbG93ZWQJAMwIAgUCb3AFA25pbAUDbmlsAApwd3JBc3NldElkCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAgxwb3dlckFzc2V0SWQCFnB3ciBhc3NldCBpZCBub3QgZm91bmQAD3N0YWtpbmdDb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhBjb250cmFjdF9zdGFraW5nAhNubyBzdGFraW5nX2NvbnRyYWN0AhdpbnZhbGlkIHN0YWtpbmcgYWRkcmVzcwAIbWluUG93ZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ1jb25maWdBZGRyZXNzCQCsAgIJAKUIAQUEdGhpcwIeX21pbl9wb3dlcl9yZXF1aXJlZF90b19wcm9qZWN0AiFubyBfbWluX3Bvd2VyX3JlcXVpcmVkX3RvX3Byb2plY3QAEGNoaWxkcmVuQ29udHJhY3QEA3N0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEWNvbnRyYWN0X2NoaWxkcmVuAhRubyBjaGlsZHJlbl9jb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFA3N0cgkArAICAhlpbnZhbGlkIGNoaWxkcmVuIGFkZHJlc3MgBQNzdHIEAWkBB3Byb2plY3QGBHNraW4IbG9ja1RpbWULaW52ZXN0bWVudHMQaW52ZXN0bWVudHNUb2tlbgtjb21taXRtZW50cwh0cmVhc3VyZQQBYQkBB2FsbG93ZWQBAgdwcm9qZWN0AwkAAAIFAWEFAWEEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAVwb3dlcgkBBWFzSW50AQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCXVzZXJQb3dlcgkAzAgCBQR1c2VyBQNuaWwFA25pbAMJAAACBQVwb3dlcgUFcG93ZXIDCQBmAgUIbWluUG93ZXIFBXBvd2VyCQACAQkArAICAjZOb3QgZW5vdWdoIHN0YWtlZCBwb3dlciB0byBjcmVhdGUgYSBwcm9qZWN0LiBSZXF1aXJlZCAJAKQDAQUIbWluUG93ZXIEAXAJAPwHBAUQY2hpbGRyZW5Db250cmFjdAIKcHJvamVjdEZvcgkAzAgCBQR1c2VyCQDMCAIFBHNraW4JAMwIAgUIbG9ja1RpbWUJAMwIAgULaW52ZXN0bWVudHMJAMwIAgUQaW52ZXN0bWVudHNUb2tlbgkAzAgCBQtjb21taXRtZW50cwkAzAgCBQh0cmVhc3VyZQUDbmlsBQNuaWwDCQAAAgUBcAUBcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBmNvbW1pdAIFY2hpbGQGYW1vdW50BAFhCQEHYWxsb3dlZAECBmNvbW1pdAMJAAACBQFhBQFhBAdhY2NvdW50CQClCAEIBQFpBmNhbGxlcgQBcwkA/AcEBQ9zdGFraW5nQ29udHJhY3QCC3Vuc3Rha2VGcm9tCQDMCAIFB2FjY291bnQJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAACBQFzBQFzBAFjCQD8BwQFEGNoaWxkcmVuQ29udHJhY3QCCWNvbW1pdEZvcgkAzAgCBQVjaGlsZAkAzAgCBQdhY2NvdW50BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnB3ckFzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAWMFAWMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQp1bmRvQ29tbWl0AQVjaGlsZAQGcGF1c2VkCQEHYWxsb3dlZAECCnVuZG9Db21taXQDCQAAAgUGcGF1c2VkBQZwYXVzZWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBARza2luCQEFYXNJbnQBCQD8BwQFEGNoaWxkcmVuQ29udHJhY3QCDXVuZG9Db21taXRGb3IJAMwIAgUFY2hpbGQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUEc2tpbgUEc2tpbgQBcwkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCHN0YWtlRm9yCQDMCAIFB2FkZHJlc3MFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUKcHdyQXNzZXRJZAUEc2tpbgUDbmlsAwkAAAIFAXMFAXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRpbml0AQRjb25mCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgUSY29uZmlnQWRkcmVzc1N0b3JlBQRjb25mBQNuaWwAa+dt+A==", "chainId": 87, "height": 3579530, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6tQCec7XSsimQwDk2Pd4zeNkMNUcWJWhkxg6ph6ZTsr1 Next: A6M5Kk84T9mDJwS4vgP3wRbvhK4wu6LcFKGJpcWf9dJV Diff:
OldNewDifferences
2929
3030 let minPower = valueOrErrorMessage(getInteger(configAddress, (toString(this) + "_min_power_required_to_project")), "no _min_power_required_to_project")
3131
32-let childrenContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_children"), "no children_contract")), "invalid children address")
32+let childrenContract = {
33+ let str = valueOrErrorMessage(getString(configAddress, "contract_children"), "no children_contract")
34+ valueOrErrorMessage(addressFromString(str), ("invalid children address " + str))
35+ }
3336
3437 @Callable(i)
3538 func project (skin,lockTime,investments,investmentsToken,commitments,treasure) = {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asInt (value) = match value {
55 case int: Int =>
66 int
77 case _ =>
88 throw("wrong type, expected: Int")
99 }
1010
1111
1212 func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
1313 then StringEntry(key, value)
1414 else throw(("already initialized: " + key))
1515
1616
1717 let configAddressStore = "config"
1818
1919 let configAddress = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, configAddressStore), "config address not found")), "invalid config address")
2020
2121 let HEIGHT = height
2222
2323 func allowed (op) = invoke(configAddress, "opAllowed", [op], nil)
2424
2525
2626 let pwrAssetId = fromBase58String(valueOrErrorMessage(getString(configAddress, "powerAssetId"), "pwr asset id not found"))
2727
2828 let stakingContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_staking"), "no staking_contract")), "invalid staking address")
2929
3030 let minPower = valueOrErrorMessage(getInteger(configAddress, (toString(this) + "_min_power_required_to_project")), "no _min_power_required_to_project")
3131
32-let childrenContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_children"), "no children_contract")), "invalid children address")
32+let childrenContract = {
33+ let str = valueOrErrorMessage(getString(configAddress, "contract_children"), "no children_contract")
34+ valueOrErrorMessage(addressFromString(str), ("invalid children address " + str))
35+ }
3336
3437 @Callable(i)
3538 func project (skin,lockTime,investments,investmentsToken,commitments,treasure) = {
3639 let a = allowed("project")
3740 if ((a == a))
3841 then {
3942 let user = toString(i.caller)
4043 let power = asInt(invoke(stakingContract, "userPower", [user], nil))
4144 if ((power == power))
4245 then if ((minPower > power))
4346 then throw(("Not enough staked power to create a project. Required " + toString(minPower)))
4447 else {
4548 let p = invoke(childrenContract, "projectFor", [user, skin, lockTime, investments, investmentsToken, commitments, treasure], nil)
4649 if ((p == p))
4750 then nil
4851 else throw("Strict value is not equal to itself.")
4952 }
5053 else throw("Strict value is not equal to itself.")
5154 }
5255 else throw("Strict value is not equal to itself.")
5356 }
5457
5558
5659
5760 @Callable(i)
5861 func commit (child,amount) = {
5962 let a = allowed("commit")
6063 if ((a == a))
6164 then {
6265 let account = toString(i.caller)
6366 let s = invoke(stakingContract, "unstakeFrom", [account, amount], nil)
6467 if ((s == s))
6568 then {
6669 let c = invoke(childrenContract, "commitFor", [child, account], [AttachedPayment(pwrAssetId, amount)])
6770 if ((c == c))
6871 then nil
6972 else throw("Strict value is not equal to itself.")
7073 }
7174 else throw("Strict value is not equal to itself.")
7275 }
7376 else throw("Strict value is not equal to itself.")
7477 }
7578
7679
7780
7881 @Callable(i)
7982 func undoCommit (child) = {
8083 let paused = allowed("undoCommit")
8184 if ((paused == paused))
8285 then {
8386 let address = toString(i.caller)
8487 let skin = asInt(invoke(childrenContract, "undoCommitFor", [child, address], nil))
8588 if ((skin == skin))
8689 then {
8790 let s = invoke(stakingContract, "stakeFor", [address], [AttachedPayment(pwrAssetId, skin)])
8891 if ((s == s))
8992 then nil
9093 else throw("Strict value is not equal to itself.")
9194 }
9295 else throw("Strict value is not equal to itself.")
9396 }
9497 else throw("Strict value is not equal to itself.")
9598 }
9699
97100
98101
99102 @Callable(i)
100103 func init (conf) = [writeConstString(configAddressStore, conf)]
101104
102105

github/deemru/w8io/0e76f2f 
27.44 ms