tx · 9hZirHFAY96GHzUhHkZzXaTFc18ga1r9o7qrQAMXUKJP

3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy:  -0.00400000 Waves

2023.10.05 16:17 [3851198] smart account 3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy > SELF 0.00000000 Waves

{ "type": 13, "id": "9hZirHFAY96GHzUhHkZzXaTFc18ga1r9o7qrQAMXUKJP", "fee": 400000, "feeAssetId": null, "timestamp": 1696511880686, "version": 1, "sender": "3P3w8TSPSRDVMLAzJcTeHnKAQsPnQgArUKy", "senderPublicKey": "BnSujow6hJrVGBci5QG71JU7GKwyCVdhyxrrM4LPrYP7", "proofs": [ "5Z9jTBFZ6wsoipZqqPEQFvYrzqQt2JL42pnE2Rbn1PXZMuqDTtDxZGX22M3n8Xvqfp5qTSZ5FV17bQcCR7yqpU2j" ], "script": "base64:BgIkCAISCwoJAQEBAQEBCAgIEgQKAggBEgMKAQgSAwoBCBIDCgEIDAEFYXNJbnQBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEA2ludAUHJG1hdGNoMAUDaW50CQACAQIZd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5ABJjb25maWdBZGRyZXNzU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRJjb25maWdBZGRyZXNzU3RvcmUCJ2NoaWxkcmVuLm1haW46IGNvbmZpZyBhZGRyZXNzIG5vdCBmb3VuZAIWaW52YWxpZCBjb25maWcgYWRkcmVzcwAGSEVJR0hUBQZoZWlnaHQBB2FsbG93ZWQBAm9wCQD8BwQFDWNvbmZpZ0FkZHJlc3MCCW9wQWxsb3dlZAkAzAgCBQJvcAUDbmlsBQNuaWwACnB3ckFzc2V0SWQJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDHBvd2VyQXNzZXRJZAIWcHdyIGFzc2V0IGlkIG5vdCBmb3VuZAAPc3Rha2luZ0NvbnRyYWN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEGNvbnRyYWN0X3N0YWtpbmcCE25vIHN0YWtpbmdfY29udHJhY3QCF2ludmFsaWQgc3Rha2luZyBhZGRyZXNzAAhtaW5Qb3dlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MJAKwCAgkApQgBBQR0aGlzAh5fbWluX3Bvd2VyX3JlcXVpcmVkX3RvX3Byb2plY3QCIW5vIF9taW5fcG93ZXJfcmVxdWlyZWRfdG9fcHJvamVjdAAQY2hpbGRyZW5Db250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhFjb250cmFjdF9jaGlsZHJlbgIUbm8gY2hpbGRyZW5fY29udHJhY3QCGGludmFsaWQgY2hpbGRyZW4gYWRkcmVzcwAId2F2ZXNEQU8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIId2F2ZXNEQU8CIzNQRXdSY1lOQVV0b0Z2S3BCaEtvaXdham5aZmRvRFI2aDRoAAdmYWN0b3J5CQELdmFsdWVPckVsc2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDm1pbmVyc19mYWN0b3J5AiMzUEpWbTd4TFBhYm1Zb2hibnZkZ0dEWUhNd25aeEYyeDE4bQUBaQEHcHJvamVjdAkEc2tpbgdtYXhTa2luDW1pbkNvbW1pdG1lbnQIbG9ja1RpbWULaW52ZXN0bWVudHMObWF4SW52ZXN0bWVudHMQaW52ZXN0bWVudHNUb2tlbgtjb21taXRtZW50cwh0cmVhc3VyZQQBYQkBB2FsbG93ZWQBAgdwcm9qZWN0AwkAAAIFAWEFAWEEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAVwb3dlcgkBBWFzSW50AQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCXVzZXJQb3dlcgkAzAgCBQR1c2VyBQNuaWwFA25pbAMJAAACBQVwb3dlcgUFcG93ZXIDCQBmAgUIbWluUG93ZXIFBXBvd2VyCQACAQkArAICAjZOb3QgZW5vdWdoIHN0YWtlZCBwb3dlciB0byBjcmVhdGUgYSBwcm9qZWN0LiBSZXF1aXJlZCAJAKQDAQUIbWluUG93ZXIEAXAJAPwHBAUQY2hpbGRyZW5Db250cmFjdAIKcHJvamVjdEZvcgkAzAgCBQR1c2VyCQDMCAIFBHNraW4JAMwIAgUHbWF4U2tpbgkAzAgCBQ1taW5Db21taXRtZW50CQDMCAIFCGxvY2tUaW1lCQDMCAIFC2ludmVzdG1lbnRzCQDMCAIFEGludmVzdG1lbnRzVG9rZW4JAMwIAgULY29tbWl0bWVudHMJAMwIAgUIdHJlYXN1cmUFA25pbAUDbmlsAwkAAAIFAXAFAXAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZjb21taXQCBWNoaWxkBmFtb3VudAQBYQkBB2FsbG93ZWQBAgZjb21taXQDCQAAAgUBYQUBYQQHYWNjb3VudAkApQgBCAUBaQZjYWxsZXIEAXMJAPwHBAUPc3Rha2luZ0NvbnRyYWN0Agt1bnN0YWtlRnJvbQkAzAgCBQdhY2NvdW50CQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUBcwUBcwQBYwkA/AcEBRBjaGlsZHJlbkNvbnRyYWN0Agljb21taXRGb3IJAMwIAgUFY2hpbGQJAMwIAgUHYWNjb3VudAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQpwd3JBc3NldElkBQZhbW91bnQFA25pbAMJAAACBQFjBQFjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29tbWl0Rm9yTWluZXIBA2ZvcgMJAQIhPQIJAKUIAQgFAWkGY2FsbGVyBQdmYWN0b3J5CQACAQIGZGVuaWVkBAFjCQD8BwQFEGNoaWxkcmVuQ29udHJhY3QCDmNvbW1pdEZvck1pbmVyCQDMCAIFCHdhdmVzREFPCQDMCAIFA2ZvcgUDbmlsCAUBaQhwYXltZW50cwMJAAACBQFjBQFjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKdW5kb0NvbW1pdAEFY2hpbGQEBnBhdXNlZAkBB2FsbG93ZWQBAgp1bmRvQ29tbWl0AwkAAAIFBnBhdXNlZAUGcGF1c2VkBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQEc2tpbgkBBWFzSW50AQkA/AcEBRBjaGlsZHJlbkNvbnRyYWN0Ag11bmRvQ29tbWl0Rm9yCQDMCAIFBWNoaWxkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFBHNraW4FBHNraW4EAXMJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AghzdGFrZUZvcgkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnB3ckFzc2V0SWQFBHNraW4FA25pbAMJAAACBQFzBQFzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEaW5pdAEEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFEmNvbmZpZ0FkZHJlc3NTdG9yZQUEY29uZgUDbmlsABYOn1A=", "chainId": 87, "height": 3851198, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Sfw9xe6BV1zi2t4Hp6gNg4ZZCxPRwSK2FEqb4vkpzuC Next: AFtMDoZ6sPRPVUUsDhQ355edSJgMyHMiMyN2LuCN4Xbq Diff:
OldNewDifferences
3636 let factory = valueOrElse(getString(configAddress, "miners_factory"), "3PJVm7xLPabmYohbnvdgGDYHMwnZxF2x18m")
3737
3838 @Callable(i)
39-func project (skin,maxSkin,minCommitment,lockTime,investments,investmentsToken,commitments,treasure) = {
39+func project (skin,maxSkin,minCommitment,lockTime,investments,maxInvestments,investmentsToken,commitments,treasure) = {
4040 let a = allowed("project")
4141 if ((a == a))
4242 then {
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), "children.main: 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
3232 let childrenContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_children"), "no children_contract")), "invalid children address")
3333
3434 let wavesDAO = valueOrElse(getString(configAddress, "wavesDAO"), "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h")
3535
3636 let factory = valueOrElse(getString(configAddress, "miners_factory"), "3PJVm7xLPabmYohbnvdgGDYHMwnZxF2x18m")
3737
3838 @Callable(i)
39-func project (skin,maxSkin,minCommitment,lockTime,investments,investmentsToken,commitments,treasure) = {
39+func project (skin,maxSkin,minCommitment,lockTime,investments,maxInvestments,investmentsToken,commitments,treasure) = {
4040 let a = allowed("project")
4141 if ((a == a))
4242 then {
4343 let user = toString(i.caller)
4444 let power = asInt(invoke(stakingContract, "userPower", [user], nil))
4545 if ((power == power))
4646 then if ((minPower > power))
4747 then throw(("Not enough staked power to create a project. Required " + toString(minPower)))
4848 else {
4949 let p = invoke(childrenContract, "projectFor", [user, skin, maxSkin, minCommitment, lockTime, investments, investmentsToken, commitments, treasure], nil)
5050 if ((p == p))
5151 then nil
5252 else throw("Strict value is not equal to itself.")
5353 }
5454 else throw("Strict value is not equal to itself.")
5555 }
5656 else throw("Strict value is not equal to itself.")
5757 }
5858
5959
6060
6161 @Callable(i)
6262 func commit (child,amount) = {
6363 let a = allowed("commit")
6464 if ((a == a))
6565 then {
6666 let account = toString(i.caller)
6767 let s = invoke(stakingContract, "unstakeFrom", [account, amount], nil)
6868 if ((s == s))
6969 then {
7070 let c = invoke(childrenContract, "commitFor", [child, account], [AttachedPayment(pwrAssetId, amount)])
7171 if ((c == c))
7272 then nil
7373 else throw("Strict value is not equal to itself.")
7474 }
7575 else throw("Strict value is not equal to itself.")
7676 }
7777 else throw("Strict value is not equal to itself.")
7878 }
7979
8080
8181
8282 @Callable(i)
8383 func commitForMiner (for) = if ((toString(i.caller) != factory))
8484 then throw("denied")
8585 else {
8686 let c = invoke(childrenContract, "commitForMiner", [wavesDAO, for], i.payments)
8787 if ((c == c))
8888 then nil
8989 else throw("Strict value is not equal to itself.")
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func undoCommit (child) = {
9696 let paused = allowed("undoCommit")
9797 if ((paused == paused))
9898 then {
9999 let address = toString(i.caller)
100100 let skin = asInt(invoke(childrenContract, "undoCommitFor", [child, address], nil))
101101 if ((skin == skin))
102102 then {
103103 let s = invoke(stakingContract, "stakeFor", [address], [AttachedPayment(pwrAssetId, skin)])
104104 if ((s == s))
105105 then nil
106106 else throw("Strict value is not equal to itself.")
107107 }
108108 else throw("Strict value is not equal to itself.")
109109 }
110110 else throw("Strict value is not equal to itself.")
111111 }
112112
113113
114114
115115 @Callable(i)
116116 func init (conf) = [writeConstString(configAddressStore, conf)]
117117
118118

github/deemru/w8io/3ef1775 
30.92 ms