tx · BJY64MKbSrh6xDgHLVrV7exPhHmPioCGhkzvHRJZidNU

3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY:  -0.02200000 Waves

2022.07.14 07:53 [2138941] smart account 3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY > SELF 0.00000000 Waves

{ "type": 13, "id": "BJY64MKbSrh6xDgHLVrV7exPhHmPioCGhkzvHRJZidNU", "fee": 2200000, "feeAssetId": null, "timestamp": 1657774419462, "version": 2, "chainId": 84, "sender": "3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY", "senderPublicKey": "J9DCtJJxJBWZdtDR12BA1U94Q3cZzMi4R6k5hYkAzmzC", "proofs": [ "5jgqfz5xAdU2LPAmoyTf6dX2kvK9R17RiXt4XRRQJBUvCaefjCSm4bMcjNBp3hmV7T25KkpF8xydYUGdoggjnYXV" ], "script": "base64:BgJaCAISBAoCCAgSDgoMCAgICAgICAgICAgIEg0KCwgICAgICAgICAgIEgYKBAgICAgSBAoCCAgSBwoFCAEBCAESBAoCCAgSBAoCCAgSBgoECAgICBIGCgQICAgISQEOZ2V0U3RyaW5nQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQNrZXkCAAAIdW5pdFRlc3QHAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIPY29uZl9vcmFjbGVfZmVlAAhzaWduRGFwcAkBBXZhbHVlAQkApggBCQEOZ2V0U3RyaW5nQnlLZXkBAhFjb25mX3NpZ253ZWJfZGFwcAALZmVlUmVjZWl2ZXIJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfZmVlX3JlY2VpdmVyAAh1c2VyRGFwcAMFCHVuaXRUZXN0CQEFdmFsdWUBCQCmCAECIzNNdDRSR01FeWpTV1lBb2NUUHFkNTV3ZEhRUUIzUFUyVUNtCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECD2NvbmZfdXNlcnNfZGFwcAANd2hpdGVsaXN0RGFwcAkBBXZhbHVlAQkApggBCQEOZ2V0U3RyaW5nQnlLZXkBAhNjb25mX3doaXRlbGlzdF9kYXBwAAtzaWduQXNzZXRJZAkA2QQBCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04AC3VzZG5Bc3NldElkCQDZBAECGGNvbmZfYWNjZXB0ZWRfYXNzZXRfVVNETgAMd2F2ZXNBc3NldElkAQAABWNocmlzCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzEABGpvZXAJAQ5nZXRTdHJpbmdCeUtleQECDGNvbmZfYWRtaW5fMgEZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ5jaGVja1doaXRlbGlzdAEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFDXdoaXRlbGlzdERhcHAFA2tleQAAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAAdzaWduQ3V0AAcAC3VzZG5XYXZlQ3V0AAoADmRlZmF1bHRMaWNlbmNlCQEOZ2V0U3RyaW5nQnlLZXkBAhRjb25mX2RlZmF1bHRfbGljZW5jZQASZGVmYXVsdEhhc2hMaWNlbmNlCQEOZ2V0U3RyaW5nQnlLZXkBAhljb25mX2RlZmF1bHRfbGljZW5jZV9oYXNoAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQh1c2VyRGFwcAIUY29uZl9kYXBwX2lzX3J1bm5pbmcGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAIUY29uZl9tYWludGVuYW5jZV9tc2cCAAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAt1c2VyUmVtb3ZlZAIHUkVNT1ZFRAAQdXNlclVucmVnaXN0ZXJlZAIMVU5SRUdJU1RFUkVEAAt1c2VyQWxsb3dlZAIHQUxMT1dFRAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBCQCsAgICEmNlcnRpZmljYXRpb25fZmVlXwkA2AQBBQtzaWduQXNzZXRJZAEUY2hlY2tTaWduQ2VydGlmaWNhdGUDBnNpZ25JRAVPd25lcgpzaGEyNTZIYXNoBAckbWF0Y2gwCQCdCAIFCHNpZ25EYXBwCQCsAgIJAKwCAgkArAICAghkYXRhX2ZjXwUGc2lnbklEAgFfBQVPd25lcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDADCQEIY29udGFpbnMCBQFhBQpzaGEyNTZIYXNoBgcHAQt2YWxpZGF0ZUNJRAEDY2lkAwkBCGNvbnRhaW5zAgUDY2lkAgEvAwMJAGYCAEwJALECAQUDY2lkCQAAAgkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAAAOwcJAGYCABAJALECAQkAkQMCCQC1CQIFA2NpZAIBLwABBwcBDHZhbGlkYXRlSGFzaAEEaGFzaAkAAAIJALECAQUEaGFzaABAAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBB2tleURhdGUCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X2RhdGVfBQVhcnRJZAIBXwUGY2FsbGVyAQdrZXlOYW1lAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF9uYW1lXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5RGVzYwIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfZGVzY18FBWFydElkAgFfBQZjYWxsZXIBDWtleURpc3BsYXlDaWQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIQYXJ0X2Rpc3BsYXlfY2lkXwUFYXJ0SWQCAV8FBmNhbGxlcgENa2V5RXhwb3J0SGFzaAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhBhcnRfZXhwb3J0X2hhc2hfBQVhcnRJZAIBXwUGY2FsbGVyAQxrZXlFeHBvcnRDaWQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIPYXJ0X2V4cG9ydF9jaWRfBQVhcnRJZAIBXwUGY2FsbGVyAQprZXlNYXhNaW50AgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICDGFydF9tYXhtaW50XwUFYXJ0SWQCAV8FBmNhbGxlcgEJa2V5U2lnbklEAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICC2FydF9zaWduaWRfBQVhcnRJZAIBXwUGY2FsbGVyAQlrZXlJc3N1ZWQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgILYXJ0X2lzc3VlZF8FBWFydElkAgFfBQZjYWxsZXIBCWtleU9uU2FsZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgthcnRfb25zYWxlXwUFYXJ0SWQCAV8FBmNhbGxlcgEOa2V5TGljZW5jZUhhc2gCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIRYXJ0X2xpY2VuY2VfaGFzaF8FBWFydElkAgFfBQZjYWxsZXIBDWtleUxpY2VuY2VDaWQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIQYXJ0X2xpY2VuY2VfY2lkXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5VGFncwIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfdGFnc18FBWFydElkAgFfBQZjYWxsZXIBB2tleVR5cGUCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X3R5cGVfBQVhcnRJZAIBXwUGY2FsbGVyAQdrZXlOb3RlAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF9ub3RlXwUFYXJ0SWQCAV8FBmNhbGxlcgEKa2V5Q3Jhd2xlcgIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhBhcnRfY3Jhd2xlcl9jaWRfBQVhcnRJZAIBXwUGY2FsbGVyAQhrZXlQcmljZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgphcnRfcHJpY2VfBQVhcnRJZAIBXwUGY2FsbGVyAQprZXlFbmRTYWxlAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICDGFydF9lbmRzYWxlXwUFYXJ0SWQCAV8FBmNhbGxlcgESa2V5QXNzZXRJZEFjY2VwdGVkAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEmFydF9hc3NldEFjY2VwdGVkXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5RmxhZwIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfZmxhZ18FBWFydElkAgFfBQZjYWxsZXIBEmtleUFydGlzdEFnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAg1hcnRpc3RfYWdlbnRfBQphcnRpc3RBZGRyAQ9rZXlQcmltYXJ5U2hhcmUBCmFydGlzdEFkZHIJAKwCAgIVYXJ0aXN0X2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARFrZXlIYXNoQnlUeGlkQWRkcgIGY2FsbGVyBHR4aWQJAKwCAgkArAICCQCsAgICE2dldF9oYXNoYnl0eGlkYWRkcl8FBHR4aWQCAV8FBmNhbGxlcgEOa2V5T3duZXJCeUhhc2gBCnNoYTI1Nkhhc2gJAKwCAgISZ2V0X293bmVyX2J5X2hhc2hfBQpzaGEyNTZIYXNoAQ1rZXlpZEJ5U2lnbmlkAgZjYWxsZXIGc2lnbklkCQCsAgIJAKwCAgkArAICAhJnZXRfYXJ0aWRieXNpZ25pZF8FBnNpZ25JZAIBXwUGY2FsbGVyARJrZXlUeGlkQnlIYXNoT3duZXICCnNoYTI1Nkhhc2gGY2FsbGVyCQCsAgICF2dldF90eGlkX2J5X2hhc2hfb3duZXJfCQDYBAEJANQWAQkAmwMBCQCsAgIFCnNoYTI1Nkhhc2gFBmNhbGxlcgEOdmFsaWRhdGVBbGxDSUQDCmNpZERpc3BsYXkJY2lkRXhwb3J0CmNpZExpY2VuY2UDCQEBIQEJAQt2YWxpZGF0ZUNJRAEFCmNpZERpc3BsYXkJAAIBAhFXcm9uZyBEaXNwbGF5IENJRAMJAQEhAQkBC3ZhbGlkYXRlQ0lEAQUJY2lkRXhwb3J0CQACAQIQV3JvbmcgRXhwb3J0IENJRAMDCQECIT0CBQpjaWRMaWNlbmNlAgAJAQEhAQkBC3ZhbGlkYXRlQ0lEAQUKY2lkTGljZW5jZQcJAAIBAhFXcm9uZyBMaWNlbmNlIENJRAYBD3ZhbGlkYXRlQWxsSGFzaAIMc2hhMjU2RXhwb3J0DXNoYTI1NkxpY2VuY2UDCQEBIQEJAQx2YWxpZGF0ZUhhc2gBBQxzaGEyNTZFeHBvcnQJAAIBAhhFeHBvcnQgSGFzaCA2NCBjaGFyLiBtYXgDCQEBIQEJAQx2YWxpZGF0ZUhhc2gBBQ1zaGEyNTZMaWNlbmNlCQACAQIZTGljZW5jZSBIYXNoIDY0IGNoYXIuIG1heAYBDnZhbGlkYXRlU3RyaW5nAgNzdHIDbWF4AwkAAAIJALECAQUDc3RyAAAJAAIBAhhGaWVsZCBjYW5ub3QgYmUgaXMgZW1wdHkDCQBmAgkAsQIBBQNzdHIFA21heAkAAgEJAKwCAgUDc3RyAgwgaXMgdG9vIGxvbmcGAQx2YWxpZGF0ZVVzZXIBBmNhbGxlcgQKdXNlclN0YXR1cwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIFEHVzZXJVbnJlZ2lzdGVyZWQDAwkAAAIFCnVzZXJTdGF0dXMFEHVzZXJVbnJlZ2lzdGVyZWQGCQAAAgUKdXNlclN0YXR1cwULdXNlckFsbG93ZWQCLlJlZ2lzdGVyIHRoaXMgYWNjb3VudCBmaXJzdCB3aXRoICJBY2NvdW50IiB0YWIDCQAAAgUKdXNlclN0YXR1cwUNdXNlclN1c3BlbmRlZAIRQWNjb3VudCBzdXNwZW5kZWQDCQAAAgUKdXNlclN0YXR1cwULdXNlclJlbW92ZWQCD0FjY291bnQgcmVtb3ZlZAIAAQpzZXRMSWNlbmNlAgpjaWRMaWNlbmNlDXNoYTI1NkxpY2VuY2UEA2NpZAMJAAACCQCxAgEFCmNpZExpY2VuY2UAAAUOZGVmYXVsdExpY2VuY2UFCmNpZExpY2VuY2UEBGhhc2gDCQAAAgkAsQIBBQ1zaGEyNTZMaWNlbmNlAAAFEmRlZmF1bHRIYXNoTGljZW5jZQUNc2hhMjU2TGljZW5jZQkAlAoCBQNjaWQFBGhhc2gBE3ZhbGlkYXRlQXJ0d29ya0RhdGEJBmNhbGxlcgpjaWREaXNwbGF5CWNpZEV4cG9ydApsaWNlbmNlQ0lEDHNoYTI1NkV4cG9ydAtsaWNlbmNlSGFzaARuYW1lC2Rlc2NyaXB0aW9uBHRhZ3MECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkAAAIJALECAQUKY2lkRGlzcGxheQAACQACAQIbRGlzcGxheSBDSUQgY2Fubm90IGJlIGVtcHR5AwkBASEBCQEOdmFsaWRhdGVBbGxDSUQDBQpjaWREaXNwbGF5BQljaWRFeHBvcnQFCmxpY2VuY2VDSUQJAAIBAhBQcm9ibGVtIHdpdGggQ0lEAwkBASEBCQEPdmFsaWRhdGVBbGxIYXNoAgUMc2hhMjU2RXhwb3J0BQtsaWNlbmNlSGFzaAkAAgECE1Byb2JsZW0gd2l0aCBIYXNoZXMDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBG5hbWUAZAkAAgECEjEwMCBDaGFyLiBtYXggbmFtZQMJAQEhAQkBDnZhbGlkYXRlU3RyaW5nAgULZGVzY3JpcHRpb24A6AcJAAIBAhoxMDAwIENoYXIuIG1heCBkZXNjcmlwdGlvbgMJAGYCCQCQAwEJALUJAgUEdGFncwIBLAAFCQACAQILNSB0YWdzIG1heC4CAAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50AQ92YWxpZGF0ZVBheW1lbnQBAWkEDSR0MDEwMjAwMTAyMzYJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTAyMDAxMDIzNgJfMQQGYW1vdW50CAUNJHQwMTAyMDAxMDIzNgJfMgQHYXNzZXRJZAMDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkAAAIIBQdwYXltZW50B2Fzc2V0SWQFC3NpZ25Bc3NldElkBwgFB3BheW1lbnQHYXNzZXRJZAkAAgECK09ubHkgU0lHTiB0b2tlbiBhY2NlcHRlZCBhcyB0cmFuc2FjdGlvbiBmZWUDCQECIT0CBQZhbW91bnQFGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAIBCQCsAgICGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAKQDAQUZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAlAoCBQZhbW91bnQFB2Fzc2V0SWQBC2lzQXJ0TWludGVkAglhZGRyVG9Vc2UFYXJ0SWQEByRtYXRjaDAJAJoIAgUEdGhpcwkBCWtleUlzc3VlZAIFCWFkZHJUb1VzZQUFYXJ0SWQDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwAwkBAiE9AgUBYgAABgcHARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMBaQxwcmljZUFzc2V0SWQMYXJ0d29ya1ByaWNlBA0kdDAxMDgyOTEwODY1CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwODI5MTA4NjUCXzEEBmFtb3VudAgFDSR0MDEwODI5MTA4NjUCXzIEB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkBQR1bml0AwMJAGYCCQCxAgEFDHByaWNlQXNzZXRJZAAACQAAAgkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBQxwcmljZUFzc2V0SWQHCAUHcGF5bWVudAdhc3NldElkCQACAQIOV3JvbmcgYXNzZXQgaWQDAwkAAAIFB2Fzc2V0SWQFBHVuaXQJAQIhPQIFDHByaWNlQXNzZXRJZAIABwkAAgECDldyb25nIGFzc2V0IGlkAwkBAiE9AgUMYXJ0d29ya1ByaWNlBQZhbW91bnQJAAIBAhNQYXltZW50IGRvbid0IG1hdGNoCQCUCgIFBmFtb3VudAUHYXNzZXRJZAEQYWNjZXB0ZWRBc3NldElkcwEHYXNzZXRJZAMDAwMJAQIhPQIFB2Fzc2V0SWQJANgEAQULc2lnbkFzc2V0SWQJAQIhPQIFB2Fzc2V0SWQJANgEAQUMd2F2ZXNBc3NldElkBwkBAiE9AgUHYXNzZXRJZAIFV0FWRVMHCQECIT0CBQdhc3NldElkCQDYBAEFC3VzZG5Bc3NldElkBwkAAgECIU9ubHkgU0lHTiwgVVNETiBvciBXQVZFUyBhY2NlcHRlZAYBD3ZhbGlkYXRlTWluU2VsbAIHYXNzZXRJZAVwcmljZQQMbWluU2VsbFdhdmVzAwUIdW5pdFRlc3QACgkBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBAg53YXZlc19taW5fc2VsbAQLbWluU2VsbFVzZG4AwIQ9BAttaW5TZWxsU2lnbgMFCHVuaXRUZXN0AAEJAGgCBRljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlAAIDAwMDAwkAAAIFB2Fzc2V0SWQJANgEAQULdXNkbkFzc2V0SWQJAGYCBQttaW5TZWxsVXNkbgUFcHJpY2UHCQECIT0CBQVwcmljZQAABwYDAwkAAAIFB2Fzc2V0SWQJANgEAQULc2lnbkFzc2V0SWQJAGYCBQttaW5TZWxsU2lnbgUFcHJpY2UHCQECIT0CBQVwcmljZQAABwYDAwMJAAACBQdhc3NldElkCQDYBAEFDHdhdmVzQXNzZXRJZAYJAAACBQdhc3NldElkAgVXQVZFUwkAZgIFDG1pblNlbGxXYXZlcwUFcHJpY2UHCQECIT0CBQVwcmljZQAABwkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUHYXNzZXRJZAEWZ2V0UHJpY2VBc3NldElkRnJvbUJpZAEKYmlkRGF0YUtleQQHYmlkRGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg1CaWQgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8ECWJpZEFtb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQQKYmlkQXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAAMJAGcCAAAFCWJpZEFtb3VudAkAAgECDFdyb25nIGFtb3VudAkAlAoCBQliaWRBbW91bnQFCmJpZEFzc2V0SWQBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABB2J1eU1pbnQFAWkFYXJ0SWQGaXNzdWVyBWJpZElkCGJpZE93bmVyBA0kdDAxMzA5MDEzMTQ3CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMzA5MDEzMTQ3Al8xBAZjYWxsZXIIBQ0kdDAxMzA5MDEzMTQ3Al8yBARkYXRlCAUNJHQwMTMwOTAxMzE0NwJfMwQFaXNCaWQDAwMJAAACCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFBmlzc3VlcgkBAiE9AgUIYmlkT3duZXICAAcJAQIhPQIFBWJpZElkAgAHBgcECGJsb2NrRW5kCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCmtleUVuZFNhbGUCBQZjYWxsZXIFBWFydElkAwMDCQECIT0CBQhibG9ja0VuZAAACQBnAgUGaGVpZ2h0BQhibG9ja0VuZAcJAQEhAQUFaXNCaWQHCQACAQILU2FsZSBlbmRlZC4EDmNhbGxlcklzSXNzdWVyCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBQZpc3N1ZXIECHRvdGFsTkZUCQEPZ2V0SW50ZWdlckJ5S2V5AQIQdG90YWxfbmZ0X2lzc3VlZAQGc2lnbklECQEOZ2V0U3RyaW5nQnlLZXkBCQEJa2V5U2lnbklEAgUGaXNzdWVyBQVhcnRJZAQLYXJ0d29ya05hbWUJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlOYW1lAgUGaXNzdWVyBQVhcnRJZAMJAAACBQthcnR3b3JrTmFtZQIACQACAQIRQXJ0IGRvZXNuJ3QgZXhpc3QECGlzT25TYWxlCQEPZ2V0Qm9vbGVhbkJ5S2V5AQkBCWtleU9uU2FsZQIFBmlzc3VlcgUFYXJ0SWQECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEJa2V5SXNzdWVkAgUGaXNzdWVyBQVhcnRJZAQMYXJ0d29ya1ByaWNlAwUOY2FsbGVySXNJc3N1ZXIJAGgCBRljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlAAIJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEIa2V5UHJpY2UCBQZpc3N1ZXIFBWFydElkBAxwcmljZUFzc2V0SWQDBQ5jYWxsZXJJc0lzc3VlcgkA2AQBBQtzaWduQXNzZXRJZAkBDmdldFN0cmluZ0J5S2V5AQkBEmtleUFzc2V0SWRBY2NlcHRlZAIFBmlzc3VlcgUFYXJ0SWQECm1heENhblNlbGwJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEKa2V5TWF4TWludAIFBmlzc3VlcgUFYXJ0SWQDAwMJAQEhAQUFaXNCaWQJAQEhAQUOY2FsbGVySXNJc3N1ZXIHAwMJAGcCAAAFDGFydHdvcmtQcmljZQYJAQEhAQUIaXNPblNhbGUGCQBnAgAABQptYXhDYW5TZWxsBwkAAgECEEFydCBub3QgZm9yIHNhbGUDAwMJAQEhAQUFaXNCaWQFDmNhbGxlcklzSXNzdWVyBwkAZwIAAAUKbWF4Q2FuU2VsbAcJAAIBAhRNYXggaXNzdWFibGUgbm90IHNldAQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGaXNzdWVyAwMFBWlzQmlkCQECIT0CBQljaGVja1VzZXICAAcJAAIBBQljaGVja1VzZXIECmJpZERhdGFLZXkJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIEYmlkXwUFYXJ0SWQCAV8FBmlzc3VlcgIBXwUIYmlkT3duZXICAV8FBWJpZElkBA0kdDAxNDg5ODE1MDY1AwUFaXNCaWQJARZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAQUKYmlkRGF0YUtleQkBFHZhbGlkYXRlUHJpY2VBc3NldElkAwUBaQUMcHJpY2VBc3NldElkBQxhcnR3b3JrUHJpY2UEBmFtb3VudAgFDSR0MDE0ODk4MTUwNjUCXzEEB2Fzc2V0SWQIBQ0kdDAxNDg5ODE1MDY1Al8yBAVhZ2VudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAkBEmtleUFydGlzdEFnZW50QWRkcgEFBmlzc3VlcgULZmVlUmVjZWl2ZXIECmFnZW50U2hhcmUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUIdXNlckRhcHAJAQ9rZXlQcmltYXJ5U2hhcmUBBQZpc3N1ZXIAAAQNaXNXaGl0ZWxpc3RlZAkBDmNoZWNrV2hpdGVsaXN0AQUGaXNzdWVyBANjdXQDCQBmAgUNaXNXaGl0ZWxpc3RlZAUGaGVpZ2h0AAADCQAAAgUHYXNzZXRJZAULc2lnbkFzc2V0SWQFB3NpZ25DdXQFC3VzZG5XYXZlQ3V0BA1hbW91bnRGb3JTaWduCQBrAwUGYW1vdW50BQNjdXQAZAQOYW1vdW50Rm9yQWdlbnQDAwMJAQIhPQIFBWFnZW50BQtmZWVSZWNlaXZlcgkAZgIFCmFnZW50U2hhcmUAAAcJAGYCBQZoZWlnaHQFDWlzV2hpdGVsaXN0ZWQHCQBrAwUGYW1vdW50BQphZ2VudFNoYXJlAGQAAAQQYW1vdW50Rm9yQ3JlYXRvcgkAZQIFBmFtb3VudAUNYW1vdW50Rm9yU2lnbgMJAAACBQphbW91bnRTb2xkBQptYXhDYW5TZWxsCQACAQIMQXJ0IHNvbGQgb3V0BA1uZXdBbW91bnRTb2xkCQBkAgUKYW1vdW50U29sZAABBAlpc3N1ZU1ldGEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglDcmVhdG9yOiAFBmlzc3VlcgIKLAogQXJ0SUQ6IAUFYXJ0SWQCCywKIFNpZ25JRDogBQZzaWduSUQCESwKIEFydHdvcmsgbmFtZTogBQthcnR3b3JrTmFtZQIKLAogSXNzdWU6IAkApAMBBQ1uZXdBbW91bnRTb2xkAgEvCQCkAwEFCm1heENhblNlbGwECGlzc3VlTkZUCQDCCAUJAKwCAgIDU0FfCQCkAwEJAGQCBQh0b3RhbE5GVAABBQlpc3N1ZU1ldGEAAQAABwQFaWRORlQJALgIAQUIaXNzdWVORlQECnNlbGxTdGF0dXMDAwkAAAIFDW5ld0Ftb3VudFNvbGQFCm1heENhblNlbGwGCQEBIQEFCGlzT25TYWxlBwYECnJlY2VpdmVORlQDAwMJAAACBQZjYWxsZXIFBmlzc3VlcgkBAiE9AgUIYmlkT3duZXICAAcJAQIhPQIFBWJpZElkAgAHCQERQGV4dHJOYXRpdmUoMTA2MikBBQhiaWRPd25lcggFAWkGY2FsbGVyBAphc3NldElkQmlkAwkBASEBCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQUHYXNzZXRJZAQHYmlkRGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgQJYmlkRGVsT2xkCQELRGVsZXRlRW50cnkBCQCsAgIFCmJpZERhdGFLZXkCBV9PUEVOBAliaWRVcGRhdGUJAQtTdHJpbmdFbnRyeQIJAKwCAgUKYmlkRGF0YUtleQIHX0NMT1NFRAkArAICCQCsAgIFB2JpZERhdGECAV8JAKQDAQUEZGF0ZQQHc29sZEtleQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglhcnRfc29sZF8JAKQDAQUNbmV3QW1vdW50U29sZAIEX29mXwkApAMBBQptYXhDYW5TZWxsAgFfBQVhcnRJZAIBXwUGaXNzdWVyBAlzb2xkVmFsdWUDCQEBIQEFBWlzQmlkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBmNhbGxlcgIBXwkApAMBBQRkYXRlAgFfBQJpZAIBXwkApAMBBQxhcnR3b3JrUHJpY2UCAV8FDHByaWNlQXNzZXRJZAIBXwkA2AQBBQVpZE5GVAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQClCAEFCnJlY2VpdmVORlQCAV8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkQmlkAgFfCQDYBAEFBWlkTkZUBAhzb2xkRGF0YQkBC1N0cmluZ0VudHJ5AgUHc29sZEtleQUJc29sZFZhbHVlBAtjb21taXNzaW9ucwMJAQIhPQIFDmFtb3VudEZvckFnZW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyCQBlAgUNYW1vdW50Rm9yU2lnbgUOYW1vdW50Rm9yQWdlbnQFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBWFnZW50BQ5hbW91bnRGb3JBZ2VudAUHYXNzZXRJZAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgUNYW1vdW50Rm9yU2lnbgUHYXNzZXRJZAUDbmlsBAZidXlSZXMJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCWtleUlzc3VlZAIFBmlzc3VlcgUFYXJ0SWQFDW5ld0Ftb3VudFNvbGQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgRuZnRfCQDYBAEFBWlkTkZUBQdzb2xkS2V5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhB0b3RhbF9uZnRfaXNzdWVkCQBkAgUIdG90YWxORlQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleUVuZFNhbGUCBQZpc3N1ZXIFBWFydElkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQlrZXlPblNhbGUCBQZpc3N1ZXIFBWFydElkBQpzZWxsU3RhdHVzCQDMCAIFCGlzc3VlTkZUCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZpc3N1ZXIFEGFtb3VudEZvckNyZWF0b3IFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUKcmVjZWl2ZU5GVAABBQVpZE5GVAUDbmlsBQtjb21taXNzaW9ucwMFBWlzQmlkCQDMCAIFCHNvbGREYXRhCQDMCAIFCWJpZFVwZGF0ZQkAzAgCBQliaWREZWxPbGQFBmJ1eVJlcwkAzAgCBQhzb2xkRGF0YQUGYnV5UmVzCgZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQN2YWwCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMBaQEKYWRkQXJ0d29yawwKc2hhMjU2SGFzaAZzaWduSUQEbmFtZQtkZXNjcmlwdGlvbgR0YWdzBHR5cGUKY2lkRGlzcGxheQxzaGEyNTZFeHBvcnQJY2lkRXhwb3J0DXNoYTI1NkxpY2VuY2UKY2lkTGljZW5jZQdjcmF3bGVyBA0kdDAxODg1MDE4ODkxCQEMaWRDYWxsZXJEYXRlAQUBaQQFYXJ0SWQIBQ0kdDAxODg1MDE4ODkxAl8xBAZjYWxsZXIIBQ0kdDAxODg1MDE4ODkxAl8yBARkYXRlCAUNJHQwMTg4NTAxODg5MQJfMwMJAQEhAQkBDHZhbGlkYXRlSGFzaAEFCnNoYTI1Nkhhc2gJAAIBAiRIYXNoIHNob3VsZCBiZSA2NCBjaGFyYWN0ZXJzIG1heGltdW0EDSR0MDE4OTkyMTkwNjEJAQpzZXRMSWNlbmNlAgUKY2lkTGljZW5jZQUNc2hhMjU2TGljZW5jZQQKbGljZW5jZUNJRAgFDSR0MDE4OTkyMTkwNjECXzEEC2xpY2VuY2VIYXNoCAUNJHQwMTg5OTIxOTA2MQJfMgQPdmFsaWRhdGVBcnR3b3JrCQETdmFsaWRhdGVBcnR3b3JrRGF0YQkFBmNhbGxlcgUKY2lkRGlzcGxheQUJY2lkRXhwb3J0BQpsaWNlbmNlQ0lEBQxzaGEyNTZFeHBvcnQFC2xpY2VuY2VIYXNoBQRuYW1lBQtkZXNjcmlwdGlvbgUEdGFncwMJAQIhPQIFD3ZhbGlkYXRlQXJ0d29yawIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBA0kdDAxOTI4MDE5MzIyCQEPdmFsaWRhdGVQYXltZW50AQUBaQQGYW1vdW50CAUNJHQwMTkyODAxOTMyMgJfMQQHYXNzZXRJZAgFDSR0MDE5MjgwMTkzMjICXzIDCQEBIQEJAQlpc0RlZmluZWQBBQZhbW91bnQJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQKZW50cnlFeGlzdAkBDmdldFN0cmluZ0J5S2V5AQkBEmtleVR4aWRCeUhhc2hPd25lcgIFCnNoYTI1Nkhhc2gFBmNhbGxlcgMJAQIhPQIFCmVudHJ5RXhpc3QCAAkAAgECFFlvdSBhbHJlYWR5IGFkZGVkIGl0BAloYXNoRXhpc3QJAQ5nZXRTdHJpbmdCeUtleQEJAQ5rZXlPd25lckJ5SGFzaAEFCnNoYTI1Nkhhc2gDCQECIT0CBQloYXNoRXhpc3QCAAkAAgECF0hhc2ggYWxyZWFkeSByZWdpc3RlcmVkBA9pc1NpZ25DZXJ0aWZpZWQJARRjaGVja1NpZ25DZXJ0aWZpY2F0ZQMFBnNpZ25JRAUGY2FsbGVyBQpzaGEyNTZIYXNoAwkBASEBBQ9pc1NpZ25DZXJ0aWZpZWQJAAIBAixTaWduIENlcnRpZmljYXRlIG5vdCBmb3VuZCBmb3IgdGhpcyBhZGRyZXNzLgkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5T3duZXJCeUhhc2gBBQpzaGEyNTZIYXNoBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleVR4aWRCeUhhc2hPd25lcgIFCnNoYTI1Nkhhc2gFBmNhbGxlcgUFYXJ0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlEYXRlAgUGY2FsbGVyBQVhcnRJZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5TmFtZQIFBmNhbGxlcgUFYXJ0SWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleURlc2MCBQZjYWxsZXIFBWFydElkBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RGlzcGxheUNpZAIFBmNhbGxlcgUFYXJ0SWQFCmNpZERpc3BsYXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV4cG9ydENpZAIFBmNhbGxlcgUFYXJ0SWQFCWNpZEV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RXhwb3J0SGFzaAIFBmNhbGxlcgUFYXJ0SWQFDHNoYTI1NkV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5TGljZW5jZUhhc2gCBQZjYWxsZXIFBWFydElkBQtsaWNlbmNlSGFzaAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5TGljZW5jZUNpZAIFBmNhbGxlcgUFYXJ0SWQFCmxpY2VuY2VDSUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVR5cGUCBQZjYWxsZXIFBWFydElkBQR0eXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlUYWdzAgUGY2FsbGVyBQVhcnRJZAUEdGFncwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleU1heE1pbnQCBQZjYWxsZXIFBWFydElkAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCWtleVNpZ25JRAIFBmNhbGxlcgUFYXJ0SWQFBnNpZ25JRAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCWtleUlzc3VlZAIFBmNhbGxlcgUFYXJ0SWQAAAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCWtleU9uU2FsZQIFBmNhbGxlcgUFYXJ0SWQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlpZEJ5U2lnbmlkAgUGY2FsbGVyBQZzaWduSUQFBWFydElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlIYXNoQnlUeGlkQWRkcgIFBmNhbGxlcgUFYXJ0SWQFCnNoYTI1Nkhhc2gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUNyYXdsZXICBQZjYWxsZXIFBWFydElkBQdjcmF3bGVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgUGYW1vdW50BQdhc3NldElkBQNuaWwBaQENdXBkYXRlQXJ0d29yawsEdHhpZARuYW1lC2Rlc2NyaXB0aW9uBHRhZ3MEdHlwZQpjaWREaXNwbGF5DHNoYTI1NkV4cG9ydAljaWRFeHBvcnQNc2hhMjU2TGljZW5jZQpjaWRMaWNlbmNlB2NyYXdsZXIDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA0kdDAyMjA1NDIyMTIzCQEKc2V0TEljZW5jZQIFCmNpZExpY2VuY2UFDXNoYTI1NkxpY2VuY2UECmxpY2VuY2VDSUQIBQ0kdDAyMjA1NDIyMTIzAl8xBAtsaWNlbmNlSGFzaAgFDSR0MDIyMDU0MjIxMjMCXzIED3ZhbGlkYXRlQXJ0d29yawkBE3ZhbGlkYXRlQXJ0d29ya0RhdGEJBQZjYWxsZXIFCmNpZERpc3BsYXkFCWNpZEV4cG9ydAUKbGljZW5jZUNJRAUMc2hhMjU2RXhwb3J0BQtsaWNlbmNlSGFzaAUEbmFtZQULZGVzY3JpcHRpb24FBHRhZ3MDCQECIT0CBQ92YWxpZGF0ZUFydHdvcmsCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQKZW50cnlFeGlzdAkBDmdldFN0cmluZ0J5S2V5AQkBB2tleU5hbWUCBQZjYWxsZXIFBHR4aWQDCQAAAgUKZW50cnlFeGlzdAIACQACAQIPRW50cnkgbm90IGZvdW5kBARmbGFnCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5RmxhZwIFBmNhbGxlcgUEdHhpZAMJAAACBQRmbGFnAgdJTExFR0FMCQACAQIdQ2Fubm90IHVwZGF0ZSBJTExFR0FMIGFydHdvcmsDCQEBIQEJAQtpc0FydE1pbnRlZAIFBmNhbGxlcgUEdHhpZAkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5TmFtZQIFBmNhbGxlcgUEdHhpZAUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5RGVzYwIFBmNhbGxlcgUEdHhpZAULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleURpc3BsYXlDaWQCBQZjYWxsZXIFBHR4aWQFCmNpZERpc3BsYXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV4cG9ydENpZAIFBmNhbGxlcgUEdHhpZAUJY2lkRXhwb3J0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlFeHBvcnRIYXNoAgUGY2FsbGVyBQR0eGlkBQxzaGEyNTZFeHBvcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleUxpY2VuY2VDaWQCBQZjYWxsZXIFBHR4aWQFCmxpY2VuY2VDSUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleUxpY2VuY2VIYXNoAgUGY2FsbGVyBQR0eGlkBQtsaWNlbmNlSGFzaAkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5VGFncwIFBmNhbGxlcgUEdHhpZAUEdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5VHlwZQIFBmNhbGxlcgUEdHhpZAUEdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5Q3Jhd2xlcgIFBmNhbGxlcgUEdHhpZAUHY3Jhd2xlcgUDbmlsCQACAQIOQWxyZWFkeSBtaW50ZWQBaQELZmxhZ0FydHdvcmsEBWFydElkBGFkZHIEZmxhZwRub3RlBA0kdDAyMzU0ODIzNTgxCQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAyMzU0ODIzNTgxAl8xBAZjYWxsZXIIBQ0kdDAyMzU0ODIzNTgxAl8yAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICB0NPTlNFTlQJAMwIAgIACQDMCAICD0NIQU5HRV9SRVFVSVJFRAkAzAgCAgdGTEFHR0VECQDMCAICB0lMTEVHQUwFA25pbAUEZmxhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5RmxhZwIFBGFkZHIFBWFydElkBQRmbGFnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlOb3RlAgUEYWRkcgUFYXJ0SWQFBG5vdGUFA25pbAkAAgEJAKwCAgIOVW5rbm93IHN0YXR1cyAFBGZsYWcJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBDWRlbGV0ZUFydHdvcmsCBWFydElkBGFkZHIEDSR0MDI0MDE3MjQwNTAJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDI0MDE3MjQwNTACXzEEBmNhbGxlcggFDSR0MDI0MDE3MjQwNTACXzIECWFkZHJUb1VzZQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIFBGpvZXAJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgUEYWRkcgUGY2FsbGVyBAplbnRyeUV4aXN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlOYW1lAgUJYWRkclRvVXNlBQVhcnRJZAIgTm8gYXJ0IG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MDCQAAAgUKZW50cnlFeGlzdAIACQACAQIgTm8gYXJ0IG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MECnNoYTI1Nkhhc2gJAQ5nZXRTdHJpbmdCeUtleQEJARFrZXlIYXNoQnlUeGlkQWRkcgIFCWFkZHJUb1VzZQUFYXJ0SWQDCQAAAgUKc2hhMjU2SGFzaAIACQACAQIlTm8gYXJ0IGhhc2ggbWF0Y2hpbmcgZm9yIHRoaXMgYWRkcmVzcwQGc2lnbklECQEOZ2V0U3RyaW5nQnlLZXkBCQEJa2V5U2lnbklEAgUJYWRkclRvVXNlBQVhcnRJZAMJAAACBQZzaWduSUQCAAkAAgECE05vIFNJR04gSUQgbWF0Y2hpbmcEDGRhdGFUb0RlbGV0ZQkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5RGF0ZQIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleU5hbWUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlEZXNjAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5RGlzcGxheUNpZAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV4cG9ydENpZAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleUV4cG9ydEhhc2gCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ5rZXlMaWNlbmNlSGFzaAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleUxpY2VuY2VDaWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlUeXBlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5VGFncwIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCmtleU1heE1pbnQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlTaWduSUQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlJc3N1ZWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlPblNhbGUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlGbGFnAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEIa2V5UHJpY2UCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlBc3NldElkQWNjZXB0ZWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ5rZXlPd25lckJ5SGFzaAEFCnNoYTI1Nkhhc2gJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleWlkQnlTaWduaWQCBQlhZGRyVG9Vc2UFBnNpZ25JRAkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5VHhpZEJ5SGFzaE93bmVyAgUKc2hhMjU2SGFzaAUJYWRkclRvVXNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQprZXlFbmRTYWxlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5Tm90ZQIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCmtleUNyYXdsZXICBQlhZGRyVG9Vc2UFBWFydElkBQNuaWwDCQEBIQEJAQtpc0FydE1pbnRlZAIFCWFkZHJUb1VzZQUFYXJ0SWQDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cFDGRhdGFUb0RlbGV0ZQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIFDGRhdGFUb0RlbGV0ZQkAAgECKEFydCBhbHJlYWR5IG1pbnRlZCwgeW91IGNhbm5vdCBkZWxldGUgaXQBaQELc2VsbEFydHdvcmsFBWFydElkBXByaWNlB21heE1pbnQHYXNzZXRJZAhibG9ja0VuZAQNJHQwMjY4MjMyNjg1NgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMjY4MjMyNjg1NgJfMQQGY2FsbGVyCAUNJHQwMjY4MjMyNjg1NgJfMgQLYXJ0d29ya05hbWUJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlOYW1lAgUGY2FsbGVyBQVhcnRJZAMJAAACBQthcnR3b3JrTmFtZQIACQACAQIjVGhpcyBhcnQgZG9lc24ndCBtYXRjaCB5b3VyIGFjY291bnQEBGZsYWcJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlGbGFnAgUGY2FsbGVyBQVhcnRJZAMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICD0NIQU5HRV9SRVFVSVJFRAkAzAgCAgdGTEFHR0VECQDMCAICB0lMTEVHQUwFA25pbAUEZmxhZwkAAgECD0ZsYWdnZWQgYXJ0d29yawQGYmlkTmJyCQEPZ2V0SW50ZWdlckJ5S2V5AQkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FBWFydElkAwkAZgIAAAUIYmxvY2tFbmQJAAIBAgxOZWdhdGl2ZSBlbmQDAwkAZgIFCGJsb2NrRW5kAAADCQECIT0CBQdtYXhNaW50AAEGCQECIT0CBQVwcmljZQAABwkAAgECOlRpbWVkIG9mZmVyIG9ubHkgYWxsb3dlZCBmb3IgdW5pcXVlIGVkaXRpb24gYW5kIG9mZmVyIG9ubHkECmJhc2VIZWlnaHQDCQAAAgUIYmxvY2tFbmQAAAAABQZoZWlnaHQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUHYXNzZXRJZAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAIFB2Fzc2V0SWQFBXByaWNlCQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgQKYW1vdW50U29sZAkBD2dldEludGVnZXJCeUtleQEJAQlrZXlJc3N1ZWQCBQZjYWxsZXIFBWFydElkBAptYXhDYW5TZWxsCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCmtleU1heE1pbnQCBQZjYWxsZXIFBWFydElkAwkAZgIFB21heE1pbnQAZAkAAgECHDEwMCBlZGl0aW9ucyBtYXggcGVyIGFydHdvcmsDAwkBAiE9AgUKYW1vdW50U29sZAAACQAAAgUKYW1vdW50U29sZAUKbWF4Q2FuU2VsbAcJAAIBAhRNYXggZWRpdGlvbiByZWFjaGVkLgMDCQBmAgUKYW1vdW50U29sZAAACQECIT0CBQptYXhDYW5TZWxsBQdtYXhNaW50BwkAAgECJkNhbm5vdCBjaGFuZ2UgbWF4aW11bSBpc3N1YWJsZSBhbnltb3JlAwMJAGYCBQZiaWROYnIAAAkBAiE9AgUKbWF4Q2FuU2VsbAUHbWF4TWludAcJAAIBAjFDYW5ub3QgY2hhbmdlIG1heGltdW0gaXNzdWFibGUgd2l0aCBhY3RpdmUgb3JkZXJzBApzZWxsU3RhdHVzAwMJAGYCBQVwcmljZQAACQBmAgUHbWF4TWludAAABwYHCQDMCAIJAQxCb29sZWFuRW50cnkCCQEJa2V5T25TYWxlAgUGY2FsbGVyBQVhcnRJZAUKc2VsbFN0YXR1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCGtleVByaWNlAgUGY2FsbGVyBQVhcnRJZAUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlNYXhNaW50AgUGY2FsbGVyBQVhcnRJZAUHbWF4TWludAkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QXNzZXRJZEFjY2VwdGVkAgUGY2FsbGVyBQVhcnRJZAUHYXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleUVuZFNhbGUCBQZjYWxsZXIFBWFydElkCQBkAgUKYmFzZUhlaWdodAUIYmxvY2tFbmQFA25pbAFpAQpidXlBcnR3b3JrAgVhcnRJZAZpc3N1ZXIJAQdidXlNaW50BQUBaQUFYXJ0SWQFBmlzc3VlcgIAAgABaQEGc2V0QmlkAgVhcnRJZAZpc3N1ZXIEDSR0MDI5MTEzMjkxNTEJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDI5MTEzMjkxNTECXzEEBmNhbGxlcggFDSR0MDI5MTEzMjkxNTECXzIEBGRhdGUIBQ0kdDAyOTExMzI5MTUxAl8zBA0kdDAyOTE1NjI5MTkyCQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDI5MTU2MjkxOTICXzEEBmFtb3VudAgFDSR0MDI5MTU2MjkxOTICXzIEB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkAgVXQVZFUwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBAhibG9ja0VuZAkBD2dldEludGVnZXJCeUtleQEJAQprZXlFbmRTYWxlAgUGaXNzdWVyBQVhcnRJZAMDCQECIT0CBQhibG9ja0VuZAAACQBnAgUGaGVpZ2h0BQhibG9ja0VuZAcJAAIBAgtTYWxlIGVuZGVkLgQGYmlkTmJyCQEPZ2V0SW50ZWdlckJ5S2V5AQkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FBWFydElkAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhJhc3NldCBub3QgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQdhc3NldElkBQZhbW91bnQJAAIBAg5Xcm9uZyBtaW4gc2VsbAQKYW1vdW50U29sZAkBD2dldEludGVnZXJCeUtleQEJAQlrZXlJc3N1ZWQCBQZpc3N1ZXIFBWFydElkBAptYXhDYW5TZWxsCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCmtleU1heE1pbnQCBQZpc3N1ZXIFBWFydElkAwkAZwIAAAUKbWF4Q2FuU2VsbAkAAgECI05vIG1heCBlZGl0aW9uIHNldCBmb3IgdGhpcyBhcnR3b3JrAwkAZwIFCmFtb3VudFNvbGQFCm1heENhblNlbGwJAAIBAhhTb2xkIG91dCwgeW91IGNhbm5vdCBiaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FBWFydElkAgFfBQZpc3N1ZXICAV8FBmNhbGxlcgIBXwUCaWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIFB2Fzc2V0SWQCAV8JAKQDAQUGYW1vdW50AgFfCQCkAwEFBGRhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQVhcnRJZAkAZAIFBmJpZE5icgABBQNuaWwBaQEJYWNjZXB0QmlkBAVhcnRJZAZpc3N1ZXIFYmlkSWQIYmlkT3duZXIEBmNhbGxlcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkBAiE9AgUGY2FsbGVyBQZpc3N1ZXIJAAIBAhlZb3UgY2Fubm90IGRvIHRoaXMgYWN0aW9uCQEHYnV5TWludAUFAWkFBWFydElkBQZpc3N1ZXIFBWJpZElkBQhiaWRPd25lcgFpAQljYW5jZWxCaWQEBWFydElkBmlzc3VlcgViaWRJZAhiaWRPd25lcgQNJHQwMzA2MTkzMDY3OAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMzA2MTkzMDY3OAJfMQQGY2FsbGVyCAUNJHQwMzA2MTkzMDY3OAJfMgQEZGF0ZQgFDSR0MDMwNjE5MzA2NzgCXzMDAwkBAiE9AgUGY2FsbGVyBQhiaWRPd25lcgkBAiE9AgUGY2FsbGVyBQZpc3N1ZXIHCQACAQIZWW91IGNhbm5vdCBkbyB0aGlzIGFjdGlvbgQNcmV0dXJuTW9uZXlUbwMJAAACBQZjYWxsZXIFBmlzc3VlcgUIYmlkT3duZXIFBmNhbGxlcgQGYmlkTmJyCQEPZ2V0SW50ZWdlckJ5S2V5AQkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FBWFydElkBApiaWREYXRhS2V5CQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FBWFydElkAgFfBQZpc3N1ZXICAV8FCGJpZE93bmVyAgFfBQViaWRJZAQHYmlkRGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg1CaWQgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8EB2Fzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAAECWJpZFN0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUKYmlkRGF0YUtleQIBXwUJYmlkU3RhdHVzCQCsAgIJAKwCAgUHYmlkRGF0YQIBXwkApAMBBQRkYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICEmN1cnJlbnRfYmlkYW1vdW50XwUFYXJ0SWQJAGUCBQZiaWROYnIAAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUNcmV0dXJuTW9uZXlUbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQUHYXNzZXRJZAUDbmlsAP84vQs=", "height": 2138941, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5g2H7FmPjurUc5TquBFWnjWd59BujWEeFAJNT9SC4KhX Next: AvRwdiH22cgEjygtguxjUZcGC3qGWz4C4qsTvsH1wXTb Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = false
5-
6-let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
7-
8-let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
9-
10-let d = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
11-
12-let e = if (a)
13- then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
14- else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
15-
16-let f = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
17-
18-let g = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
19-
20-let h = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
21-
22-let i = base58''
23-
24-let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
25-
26-let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
27-
28-let l = 7
29-
30-let m = 10
31-
32-let n = "bafybeifuyo4pqu54ismqgtb6e4h6kkvgx7zg4u3zibh2r7y6mb64i7bzza/licence.pdf"
33-
34-let o = "a87758c354e30a9e78fb84fa3a0010a5090ab20df0be11ad45b5720cc187e639"
35-
36-let p = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
37-
38-let q = valueOrElse(getString(e, "conf_maintenance_msg"), "")
39-
40-let r = "SUSPENDED"
41-
42-let s = "REMOVED"
43-
44-let t = "UNREGISTERED"
45-
46-let u = "ALLOWED"
47-
48-func v (w) = valueOrElse(getString(this, w), "")
4+func a (b) = valueOrElse(getString(this, b), "")
495
506
51-func x (w) = valueOrErrorMessage(getInteger(b, w), "Integer undefine or 0 in oracle")
7+let c = false
8+
9+let d = value(addressFromString(a("conf_oracle_fee")))
10+
11+let e = value(addressFromString(a("conf_signweb_dapp")))
12+
13+let f = a("conf_fee_receiver")
14+
15+let g = if (c)
16+ then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
17+ else value(addressFromString(a("conf_users_dapp")))
18+
19+let h = value(addressFromString(a("conf_whitelist_dapp")))
20+
21+let i = fromBase58String(a("conf_accepted_asset_SIGN"))
22+
23+let j = fromBase58String("conf_accepted_asset_USDN")
24+
25+let k = base58''
26+
27+let l = a("conf_admin_1")
28+
29+let m = a("conf_admin_2")
30+
31+func n (b) = valueOrErrorMessage(getInteger(d, b), "Integer undefine or 0 in oracle")
5232
5333
54-func y (w) = valueOrElse(getInteger(this, w), 0)
34+func o (b) = valueOrElse(getInteger(this, b), 0)
5535
5636
57-func z (w) = valueOrElse(getInteger(f, w), 0)
37+func p (b) = valueOrElse(getInteger(h, b), 0)
5838
5939
60-func A (w) = valueOrElse(getBoolean(this, w), false)
40+func q (b) = valueOrElse(getBoolean(this, b), false)
6141
6242
63-let B = x(("certification_fee_" + toBase58String(g)))
43+let r = 7
44+
45+let s = 10
46+
47+let t = a("conf_default_licence")
48+
49+let u = a("conf_default_licence_hash")
50+
51+let v = valueOrElse(getBoolean(g, "conf_dapp_is_running"), true)
52+
53+let w = valueOrElse(getString(g, "conf_maintenance_msg"), "")
54+
55+let x = "SUSPENDED"
56+
57+let y = "REMOVED"
58+
59+let z = "UNREGISTERED"
60+
61+let A = "ALLOWED"
62+
63+let B = n(("certification_fee_" + toBase58String(i)))
6464
6565 func C (D,E,F) = {
66- let G = getString(c, ((("data_fc_" + D) + "_") + E))
66+ let G = getString(e, ((("data_fc_" + D) + "_") + E))
6767 if ($isInstanceOf(G, "String"))
6868 then {
6969 let H = G
194194
195195
196196 func aC (N) = {
197- let aD = valueOrElse(getString(e, M(N)), t)
198- if (if ((aD == t))
197+ let aD = valueOrElse(getString(g, M(N)), z)
198+ if (if ((aD == z))
199199 then true
200- else (aD == u))
200+ else (aD == A))
201201 then "Register this account first with \"Account\" tab"
202- else if ((aD == r))
202+ else if ((aD == x))
203203 then "Account suspended"
204- else if ((aD == s))
204+ else if ((aD == y))
205205 then "Account removed"
206206 else ""
207207 }
209209
210210 func aE (av,ay) = {
211211 let J = if ((size(av) == 0))
212- then n
212+ then t
213213 else av
214214 let L = if ((size(ay) == 0))
215- then o
215+ then u
216216 else ay
217217 $Tuple2(J, L)
218218 }
252252 let aO = aR._1
253253 let aP = aR._2
254254 let aS = if (if (isDefined(aO.assetId))
255- then (aO.assetId == g)
255+ then (aO.assetId == i)
256256 else false)
257257 then aO.assetId
258258 else throw("Only SIGN token accepted as transaction fee")
296296 }
297297
298298
299-func ba (aS) = if (if (if (if ((aS != toBase58String(g)))
300- then (aS != toBase58String(i))
299+func ba (aS) = if (if (if (if ((aS != toBase58String(i)))
300+ then (aS != toBase58String(k))
301301 else false)
302302 then (aS != "WAVES")
303303 else false)
304- then (aS != toBase58String(h))
304+ then (aS != toBase58String(j))
305305 else false)
306306 then throw("Only SIGN, USDN or WAVES accepted")
307307 else true
308308
309309
310310 func bb (aS,bc) = {
311- let bd = if (a)
311+ let bd = if (c)
312312 then 10
313- else x("waves_min_sell")
313+ else n("waves_min_sell")
314314 let be = 1000000
315- let bf = if (a)
315+ let bf = if (c)
316316 then 1
317317 else (B * 2)
318- if (if (if (if (if ((aS == toBase58String(h)))
318+ if (if (if (if (if ((aS == toBase58String(j)))
319319 then (be > bc)
320320 else false)
321321 then (bc != 0)
322322 else false)
323323 then true
324- else if (if ((aS == toBase58String(g)))
324+ else if (if ((aS == toBase58String(i)))
325325 then (bf > bc)
326326 else false)
327327 then (bc != 0)
328328 else false)
329329 then true
330- else if (if (if ((aS == toBase58String(i)))
330+ else if (if (if ((aS == toBase58String(k)))
331331 then true
332332 else (aS == "WAVES"))
333333 then (bd > bc)
345345
346346
347347 func bh (bi) = {
348- let bj = v((bi + "_OPEN"))
348+ let bj = a((bi + "_OPEN"))
349349 if ((bj == ""))
350350 then throw("Bid not found")
351351 else {
359359 }
360360
361361
362-func bn (aN) = if (!(p))
363- then throw(q)
362+func bn (aN) = if (!(v))
363+ then throw(w)
364364 else $Tuple3(toBase58String(aN.transactionId), toBase58String(aN.caller.bytes), lastBlock.timestamp)
365365
366366
376376 else false)
377377 then true
378378 else false
379- let bw = y(ag(N, P))
379+ let bw = o(ag(N, P))
380380 if (if (if ((bw != 0))
381381 then (height >= bw)
382382 else false)
385385 then throw("Sale ended.")
386386 else {
387387 let bx = (toBase58String(aN.caller.bytes) == bp)
388- let by = y("total_nft_issued")
389- let D = v(W(bp, P))
390- let bz = v(Q(bp, P))
388+ let by = o("total_nft_issued")
389+ let D = a(W(bp, P))
390+ let bz = a(Q(bp, P))
391391 if ((bz == ""))
392392 then throw("Art doesn't exist")
393393 else {
394- let bA = A(Y(bp, P))
395- let bB = y(X(bp, P))
394+ let bA = q(Y(bp, P))
395+ let bB = o(X(bp, P))
396396 let aY = if (bx)
397397 then (B * 2)
398- else y(af(bp, P))
398+ else o(af(bp, P))
399399 let aX = if (bx)
400- then toBase58String(g)
401- else v(ah(bp, P))
402- let bC = y(V(bp, P))
400+ then toBase58String(i)
401+ else a(ah(bp, P))
402+ let bC = o(V(bp, P))
403403 if (if (if (!(bv))
404404 then !(bx)
405405 else false)
429429 else aW(aN, aX, aY)
430430 let aP = bD._1
431431 let aS = bD._2
432- let bE = valueOrElse(getString(e, aj(bp)), d)
433- let bF = valueOrElse(getInteger(e, al(bp)), 0)
434- let bG = z(bp)
432+ let bE = valueOrElse(getString(g, aj(bp)), f)
433+ let bF = valueOrElse(getInteger(g, al(bp)), 0)
434+ let bG = p(bp)
435435 let bH = if ((bG > height))
436436 then 0
437- else if ((aS == g))
438- then l
439- else m
437+ else if ((aS == i))
438+ then r
439+ else s
440440 let bI = fraction(aP, bH, 100)
441- let bJ = if (if (if ((bE != d))
441+ let bJ = if (if (if ((bE != f))
442442 then (bF > 0)
443443 else false)
444444 then (height > bG)
472472 let bR = if (!(isDefined(aS)))
473473 then "WAVES"
474474 else toBase58String(value(aS))
475- let bj = v((bi + "_OPEN"))
475+ let bj = a((bi + "_OPEN"))
476476 let bS = DeleteEntry((bi + "_OPEN"))
477477 let bT = StringEntry((bi + "_CLOSED"), ((bj + "_") + toString(bu)))
478478 let bU = ((((((("art_sold_" + toString(bL)) + "_of_") + toString(bC)) + "_") + P) + "_") + bp)
481481 else ((((((((((toString(bQ) + "_") + toString(bu)) + "_") + bt) + "_") + toString(aP)) + "_") + bR) + "_") + toBase58String(bO))
482482 let bW = StringEntry(bU, bV)
483483 let bX = if ((bJ != 0))
484- then [ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
485- else [ScriptTransfer(Address(fromBase58String(d)), bI, aS)]
484+ then [ScriptTransfer(Address(fromBase58String(f)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
485+ else [ScriptTransfer(Address(fromBase58String(f)), bI, aS)]
486486 let bY = ([IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(bQ, 1, bO)] ++ bX)
487487 if (bv)
488488 then [bW, bT, bS] :: bY
495495 }
496496
497497
498+@Callable(bZ)
499+func setConf (b,ca) = {
500+ let N = toString(bZ.caller)
501+ if (containsElement([l, toString(this)], N))
502+ then if (contains(ca, "conf_"))
503+ then [StringEntry(b, ca)]
504+ else throw("Entries starting with conf_ only")
505+ else throw("You are not allowed to change this")
506+ }
507+
508+
509+
498510 @Callable(aN)
499-func addArtwork (F,D,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = {
500- let cb = bn(aN)
501- let P = cb._1
502- let N = cb._2
503- let bu = cb._3
511+func addArtwork (F,D,aI,aJ,aK,cb,at,ax,au,ay,av,cc) = {
512+ let cd = bn(aN)
513+ let P = cd._1
514+ let N = cd._2
515+ let bu = cd._3
504516 if (!(K(F)))
505517 then throw("Hash should be 64 characters maximum")
506518 else {
507- let cc = aE(av, ay)
508- let aG = cc._1
509- let aH = cc._2
510- let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
511- if ((cd != ""))
519+ let ce = aE(av, ay)
520+ let aG = ce._1
521+ let aH = ce._2
522+ let cf = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
523+ if ((cf != ""))
512524 then throw("Something went wrong!")
513525 else {
514- let ce = aQ(aN)
515- let aP = ce._1
516- let aS = ce._2
526+ let cg = aQ(aN)
527+ let aP = cg._1
528+ let aS = cg._2
517529 if (!(isDefined(aP)))
518530 then throw("Something went wrong")
519531 else {
520- let cf = v(ar(F, N))
521- if ((cf != ""))
532+ let ch = a(ar(F, N))
533+ if ((ch != ""))
522534 then throw("You already added it")
523535 else {
524- let cg = v(ao(F))
525- if ((cg != ""))
536+ let ci = a(ao(F))
537+ if ((ci != ""))
526538 then throw("Hash already registered")
527539 else {
528- let ch = C(D, N, F)
529- if (!(ch))
540+ let cj = C(D, N, F)
541+ if (!(cj))
530542 then throw("Sign Certificate not found for this address.")
531- else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bZ), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), ca), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
543+ else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), cb), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), cc), ScriptTransfer(Address(fromBase58String(f)), aP, aS)]
532544 }
533545 }
534546 }
539551
540552
541553 @Callable(aN)
542-func updateArtwork (an,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = if (!(p))
543- then throw(q)
554+func updateArtwork (an,aI,aJ,aK,cb,at,ax,au,ay,av,cc) = if (!(v))
555+ then throw(w)
544556 else {
545557 let N = toBase58String(aN.caller.bytes)
546- let ci = aE(av, ay)
547- let aG = ci._1
548- let aH = ci._2
549- let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
550- if ((cd != ""))
558+ let ck = aE(av, ay)
559+ let aG = ck._1
560+ let aH = ck._2
561+ let cf = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
562+ if ((cf != ""))
551563 then throw("Something went wrong!")
552564 else {
553- let cf = v(Q(N, an))
554- if ((cf == ""))
565+ let ch = a(Q(N, an))
566+ if ((ch == ""))
555567 then throw("Entry not found")
556568 else {
557- let cj = v(ai(N, an))
558- if ((cj == "ILLEGAL"))
569+ let cl = a(ai(N, an))
570+ if ((cl == "ILLEGAL"))
559571 then throw("Cannot update ILLEGAL artwork")
560572 else if (!(aT(N, an)))
561- then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bZ), StringEntry(ae(N, an), ca)]
573+ then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), cb), StringEntry(ae(N, an), cc)]
562574 else throw("Already minted")
563575 }
564576 }
567579
568580
569581 @Callable(aN)
570-func flagArtwork (P,ck,cj,cl) = {
571- let cm = bn(aN)
572- let bt = cm._1
573- let N = cm._2
574- if (containsElement([j, toString(this)], N))
575- then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
576- then [StringEntry(ai(ck, P), cj), StringEntry(ad(ck, P), cl)]
577- else throw(("Unknow status " + cj))
582+func flagArtwork (P,cm,cl,cn) = {
583+ let co = bn(aN)
584+ let bt = co._1
585+ let N = co._2
586+ if (containsElement([l, toString(this)], N))
587+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cl))
588+ then [StringEntry(ai(cm, P), cl), StringEntry(ad(cm, P), cn)]
589+ else throw(("Unknow status " + cl))
578590 else throw("You are not allowed")
579591 }
580592
581593
582594
583595 @Callable(aN)
584-func deleteArtwork (P,ck) = {
585- let cn = bn(aN)
586- let bt = cn._1
587- let N = cn._2
588- let aU = if (containsElement([j, k, toString(this)], N))
589- then ck
596+func deleteArtwork (P,cm) = {
597+ let cp = bn(aN)
598+ let bt = cp._1
599+ let N = cp._2
600+ let aU = if (containsElement([l, m, toString(this)], N))
601+ then cm
590602 else N
591- let cf = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
592- if ((cf == ""))
603+ let ch = valueOrErrorMessage(a(Q(aU, P)), "No art matching for this address")
604+ if ((ch == ""))
593605 then throw("No art matching for this address")
594606 else {
595- let F = v(am(aU, P))
607+ let F = a(am(aU, P))
596608 if ((F == ""))
597609 then throw("No art hash matching for this address")
598610 else {
599- let D = v(W(aU, P))
611+ let D = a(W(aU, P))
600612 if ((D == ""))
601613 then throw("No SIGN ID matching")
602614 else {
603- let co = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
615+ let cq = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
604616 if (!(aT(aU, P)))
605- then if (!(p))
606- then throw(q)
607- else co
608- else if (containsElement([j, toString(this)], N))
609- then co
617+ then if (!(v))
618+ then throw(w)
619+ else cq
620+ else if (containsElement([l, toString(this)], N))
621+ then cq
610622 else throw("Art already minted, you cannot delete it")
611623 }
612624 }
616628
617629
618630 @Callable(aN)
619-func sellArtwork (P,bc,cp,aS,bw) = {
620- let cq = bn(aN)
621- let bt = cq._1
622- let N = cq._2
623- let bz = v(Q(N, P))
631+func sellArtwork (P,bc,cr,aS,bw) = {
632+ let cs = bn(aN)
633+ let bt = cs._1
634+ let N = cs._2
635+ let bz = a(Q(N, P))
624636 if ((bz == ""))
625637 then throw("This art doesn't match your account")
626638 else {
627- let cj = v(ai(N, P))
628- if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
639+ let cl = a(ai(N, P))
640+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cl))
629641 then throw("Flagged artwork")
630642 else {
631- let cr = y(("current_bidamount_" + P))
643+ let ct = o(("current_bidamount_" + P))
632644 if ((0 > bw))
633645 then throw("Negative end")
634646 else if (if ((bw > 0))
635- then if ((cp != 1))
647+ then if ((cr != 1))
636648 then true
637649 else (bc != 0)
638650 else false)
639651 then throw("Timed offer only allowed for unique edition and offer only")
640652 else {
641- let cs = if ((bw == 0))
653+ let cu = if ((bw == 0))
642654 then 0
643655 else height
644656 if (!(ba(aS)))
650662 if ((aL != ""))
651663 then throw(aL)
652664 else {
653- let bB = y(X(N, P))
654- let bC = y(V(N, P))
655- if ((cp > 100))
665+ let bB = o(X(N, P))
666+ let bC = o(V(N, P))
667+ if ((cr > 100))
656668 then throw("100 editions max per artwork")
657669 else if (if ((bB != 0))
658670 then (bB == bC)
659671 else false)
660672 then throw("Max edition reached.")
661673 else if (if ((bB > 0))
662- then (bC != cp)
674+ then (bC != cr)
663675 else false)
664676 then throw("Cannot change maximum issuable anymore")
665- else if (if ((cr > 0))
666- then (bC != cp)
677+ else if (if ((ct > 0))
678+ then (bC != cr)
667679 else false)
668680 then throw("Cannot change maximum issuable with active orders")
669681 else {
670682 let bP = if (if ((bc > 0))
671- then (cp > 0)
683+ then (cr > 0)
672684 else false)
673685 then true
674686 else false
675-[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cp), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cs + bw))]
687+[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cr), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cu + bw))]
676688 }
677689 }
678690 }
690702
691703 @Callable(aN)
692704 func setBid (P,bp) = {
693- let ct = bn(aN)
694- let bt = ct._1
695- let N = ct._2
696- let bu = ct._3
697- let cu = aM(aN)
698- let aO = cu._1
699- let aP = cu._2
705+ let cv = bn(aN)
706+ let bt = cv._1
707+ let N = cv._2
708+ let bu = cv._3
709+ let cw = aM(aN)
710+ let aO = cw._1
711+ let aP = cw._2
700712 let aS = if (!(isDefined(aO.assetId)))
701713 then "WAVES"
702714 else toBase58String(value(aO.assetId))
703- let bw = y(ag(bp, P))
715+ let bw = o(ag(bp, P))
704716 if (if ((bw != 0))
705717 then (height >= bw)
706718 else false)
707719 then throw("Sale ended.")
708720 else {
709- let cr = y(("current_bidamount_" + P))
721+ let ct = o(("current_bidamount_" + P))
710722 if (!(ba(aS)))
711723 then throw("asset not accepted")
712724 else if (!(bb(aS, aP)))
713725 then throw("Wrong min sell")
714726 else {
715- let bB = y(X(bp, P))
716- let bC = y(V(bp, P))
727+ let bB = o(X(bp, P))
728+ let bC = o(V(bp, P))
717729 if ((0 >= bC))
718730 then throw("No max edition set for this artwork")
719731 else if ((bB >= bC))
720732 then throw("Sold out, you cannot bid")
721- else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr + 1))]
733+ else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (ct + 1))]
722734 }
723735 }
724736 }
737749
738750 @Callable(aN)
739751 func cancelBid (P,bp,bq,br) = {
740- let cv = bn(aN)
741- let bt = cv._1
742- let N = cv._2
743- let bu = cv._3
752+ let cx = bn(aN)
753+ let bt = cx._1
754+ let N = cx._2
755+ let bu = cx._3
744756 if (if ((N != br))
745757 then (N != bp)
746758 else false)
747759 then throw("You cannot do this action")
748760 else {
749- let cw = if ((N == bp))
761+ let cy = if ((N == bp))
750762 then br
751763 else N
752- let cr = y(("current_bidamount_" + P))
764+ let ct = o(("current_bidamount_" + P))
753765 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
754- let bj = v((bi + "_OPEN"))
766+ let bj = a((bi + "_OPEN"))
755767 if ((bj == ""))
756768 then throw("Bid not found")
757769 else {
758770 let bk = split(bj, "_")
759771 let aS = bg(bk[0])
760- let cx = "CANCELED"
761-[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cx), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr - 1)), ScriptTransfer(Address(fromBase58String(cw)), parseIntValue(bk[1]), aS)]
772+ let cz = "CANCELED"
773+[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cz), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (ct - 1)), ScriptTransfer(Address(fromBase58String(cy)), parseIntValue(bk[1]), aS)]
762774 }
763775 }
764776 }
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = false
5-
6-let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
7-
8-let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
9-
10-let d = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
11-
12-let e = if (a)
13- then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
14- else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
15-
16-let f = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
17-
18-let g = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
19-
20-let h = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
21-
22-let i = base58''
23-
24-let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
25-
26-let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
27-
28-let l = 7
29-
30-let m = 10
31-
32-let n = "bafybeifuyo4pqu54ismqgtb6e4h6kkvgx7zg4u3zibh2r7y6mb64i7bzza/licence.pdf"
33-
34-let o = "a87758c354e30a9e78fb84fa3a0010a5090ab20df0be11ad45b5720cc187e639"
35-
36-let p = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
37-
38-let q = valueOrElse(getString(e, "conf_maintenance_msg"), "")
39-
40-let r = "SUSPENDED"
41-
42-let s = "REMOVED"
43-
44-let t = "UNREGISTERED"
45-
46-let u = "ALLOWED"
47-
48-func v (w) = valueOrElse(getString(this, w), "")
4+func a (b) = valueOrElse(getString(this, b), "")
495
506
51-func x (w) = valueOrErrorMessage(getInteger(b, w), "Integer undefine or 0 in oracle")
7+let c = false
8+
9+let d = value(addressFromString(a("conf_oracle_fee")))
10+
11+let e = value(addressFromString(a("conf_signweb_dapp")))
12+
13+let f = a("conf_fee_receiver")
14+
15+let g = if (c)
16+ then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
17+ else value(addressFromString(a("conf_users_dapp")))
18+
19+let h = value(addressFromString(a("conf_whitelist_dapp")))
20+
21+let i = fromBase58String(a("conf_accepted_asset_SIGN"))
22+
23+let j = fromBase58String("conf_accepted_asset_USDN")
24+
25+let k = base58''
26+
27+let l = a("conf_admin_1")
28+
29+let m = a("conf_admin_2")
30+
31+func n (b) = valueOrErrorMessage(getInteger(d, b), "Integer undefine or 0 in oracle")
5232
5333
54-func y (w) = valueOrElse(getInteger(this, w), 0)
34+func o (b) = valueOrElse(getInteger(this, b), 0)
5535
5636
57-func z (w) = valueOrElse(getInteger(f, w), 0)
37+func p (b) = valueOrElse(getInteger(h, b), 0)
5838
5939
60-func A (w) = valueOrElse(getBoolean(this, w), false)
40+func q (b) = valueOrElse(getBoolean(this, b), false)
6141
6242
63-let B = x(("certification_fee_" + toBase58String(g)))
43+let r = 7
44+
45+let s = 10
46+
47+let t = a("conf_default_licence")
48+
49+let u = a("conf_default_licence_hash")
50+
51+let v = valueOrElse(getBoolean(g, "conf_dapp_is_running"), true)
52+
53+let w = valueOrElse(getString(g, "conf_maintenance_msg"), "")
54+
55+let x = "SUSPENDED"
56+
57+let y = "REMOVED"
58+
59+let z = "UNREGISTERED"
60+
61+let A = "ALLOWED"
62+
63+let B = n(("certification_fee_" + toBase58String(i)))
6464
6565 func C (D,E,F) = {
66- let G = getString(c, ((("data_fc_" + D) + "_") + E))
66+ let G = getString(e, ((("data_fc_" + D) + "_") + E))
6767 if ($isInstanceOf(G, "String"))
6868 then {
6969 let H = G
7070 if (contains(H, F))
7171 then true
7272 else false
7373 }
7474 else false
7575 }
7676
7777
7878 func I (J) = if (contains(J, "/"))
7979 then if (if ((76 > size(J)))
8080 then (size(split(J, "/")[0]) == 59)
8181 else false)
8282 then (16 > size(split(J, "/")[1]))
8383 else false
8484 else false
8585
8686
8787 func K (L) = (size(L) == 64)
8888
8989
9090 func M (N) = ("user_status_" + N)
9191
9292
9393 func O (N,P) = ((("art_date_" + P) + "_") + N)
9494
9595
9696 func Q (N,P) = ((("art_name_" + P) + "_") + N)
9797
9898
9999 func R (N,P) = ((("art_desc_" + P) + "_") + N)
100100
101101
102102 func S (N,P) = ((("art_display_cid_" + P) + "_") + N)
103103
104104
105105 func T (N,P) = ((("art_export_hash_" + P) + "_") + N)
106106
107107
108108 func U (N,P) = ((("art_export_cid_" + P) + "_") + N)
109109
110110
111111 func V (N,P) = ((("art_maxmint_" + P) + "_") + N)
112112
113113
114114 func W (N,P) = ((("art_signid_" + P) + "_") + N)
115115
116116
117117 func X (N,P) = ((("art_issued_" + P) + "_") + N)
118118
119119
120120 func Y (N,P) = ((("art_onsale_" + P) + "_") + N)
121121
122122
123123 func Z (N,P) = ((("art_licence_hash_" + P) + "_") + N)
124124
125125
126126 func aa (N,P) = ((("art_licence_cid_" + P) + "_") + N)
127127
128128
129129 func ab (N,P) = ((("art_tags_" + P) + "_") + N)
130130
131131
132132 func ac (N,P) = ((("art_type_" + P) + "_") + N)
133133
134134
135135 func ad (N,P) = ((("art_note_" + P) + "_") + N)
136136
137137
138138 func ae (N,P) = ((("art_crawler_cid_" + P) + "_") + N)
139139
140140
141141 func af (N,P) = ((("art_price_" + P) + "_") + N)
142142
143143
144144 func ag (N,P) = ((("art_endsale_" + P) + "_") + N)
145145
146146
147147 func ah (N,P) = ((("art_assetAccepted_" + P) + "_") + N)
148148
149149
150150 func ai (N,P) = ((("art_flag_" + P) + "_") + N)
151151
152152
153153 func aj (ak) = ("artist_agent_" + ak)
154154
155155
156156 func al (ak) = ("artist_agent_primary_" + ak)
157157
158158
159159 func am (N,an) = ((("get_hashbytxidaddr_" + an) + "_") + N)
160160
161161
162162 func ao (F) = ("get_owner_by_hash_" + F)
163163
164164
165165 func ap (N,aq) = ((("get_artidbysignid_" + aq) + "_") + N)
166166
167167
168168 func ar (F,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((F + N)))))
169169
170170
171171 func as (at,au,av) = if (!(I(at)))
172172 then throw("Wrong Display CID")
173173 else if (!(I(au)))
174174 then throw("Wrong Export CID")
175175 else if (if ((av != ""))
176176 then !(I(av))
177177 else false)
178178 then throw("Wrong Licence CID")
179179 else true
180180
181181
182182 func aw (ax,ay) = if (!(K(ax)))
183183 then throw("Export Hash 64 char. max")
184184 else if (!(K(ay)))
185185 then throw("Licence Hash 64 char. max")
186186 else true
187187
188188
189189 func az (aA,aB) = if ((size(aA) == 0))
190190 then throw("Field cannot be is empty")
191191 else if ((size(aA) > aB))
192192 then throw((aA + " is too long"))
193193 else true
194194
195195
196196 func aC (N) = {
197- let aD = valueOrElse(getString(e, M(N)), t)
198- if (if ((aD == t))
197+ let aD = valueOrElse(getString(g, M(N)), z)
198+ if (if ((aD == z))
199199 then true
200- else (aD == u))
200+ else (aD == A))
201201 then "Register this account first with \"Account\" tab"
202- else if ((aD == r))
202+ else if ((aD == x))
203203 then "Account suspended"
204- else if ((aD == s))
204+ else if ((aD == y))
205205 then "Account removed"
206206 else ""
207207 }
208208
209209
210210 func aE (av,ay) = {
211211 let J = if ((size(av) == 0))
212- then n
212+ then t
213213 else av
214214 let L = if ((size(ay) == 0))
215- then o
215+ then u
216216 else ay
217217 $Tuple2(J, L)
218218 }
219219
220220
221221 func aF (N,at,au,aG,ax,aH,aI,aJ,aK) = {
222222 let aL = aC(N)
223223 if ((aL != ""))
224224 then throw(aL)
225225 else if ((size(at) == 0))
226226 then throw("Display CID cannot be empty")
227227 else if (!(as(at, au, aG)))
228228 then throw("Problem with CID")
229229 else if (!(aw(ax, aH)))
230230 then throw("Problem with Hashes")
231231 else if (!(az(aI, 100)))
232232 then throw("100 Char. max name")
233233 else if (!(az(aJ, 1000)))
234234 then throw("1000 Char. max description")
235235 else if ((size(split(aK, ",")) > 5))
236236 then throw("5 tags max.")
237237 else ""
238238 }
239239
240240
241241 func aM (aN) = if ((size(aN.payments) == 0))
242242 then throw("No payment attached")
243243 else {
244244 let aO = value(aN.payments[0])
245245 let aP = value(aO.amount)
246246 $Tuple2(aO, aP)
247247 }
248248
249249
250250 func aQ (aN) = {
251251 let aR = aM(aN)
252252 let aO = aR._1
253253 let aP = aR._2
254254 let aS = if (if (isDefined(aO.assetId))
255- then (aO.assetId == g)
255+ then (aO.assetId == i)
256256 else false)
257257 then aO.assetId
258258 else throw("Only SIGN token accepted as transaction fee")
259259 if ((aP != B))
260260 then throw(("Payment amount should be " + toString(B)))
261261 else $Tuple2(aP, aS)
262262 }
263263
264264
265265 func aT (aU,P) = {
266266 let G = getInteger(this, X(aU, P))
267267 if ($isInstanceOf(G, "Int"))
268268 then {
269269 let aV = G
270270 if ((aV != 0))
271271 then true
272272 else false
273273 }
274274 else false
275275 }
276276
277277
278278 func aW (aN,aX,aY) = {
279279 let aZ = aM(aN)
280280 let aO = aZ._1
281281 let aP = aZ._2
282282 let aS = if (!(isDefined(aO.assetId)))
283283 then unit
284284 else if (if ((size(aX) > 0))
285285 then (toBase58String(value(aO.assetId)) == aX)
286286 else false)
287287 then aO.assetId
288288 else throw("Wrong asset id")
289289 if (if ((aS == unit))
290290 then (aX != "")
291291 else false)
292292 then throw("Wrong asset id")
293293 else if ((aY != aP))
294294 then throw("Payment don't match")
295295 else $Tuple2(aP, aS)
296296 }
297297
298298
299-func ba (aS) = if (if (if (if ((aS != toBase58String(g)))
300- then (aS != toBase58String(i))
299+func ba (aS) = if (if (if (if ((aS != toBase58String(i)))
300+ then (aS != toBase58String(k))
301301 else false)
302302 then (aS != "WAVES")
303303 else false)
304- then (aS != toBase58String(h))
304+ then (aS != toBase58String(j))
305305 else false)
306306 then throw("Only SIGN, USDN or WAVES accepted")
307307 else true
308308
309309
310310 func bb (aS,bc) = {
311- let bd = if (a)
311+ let bd = if (c)
312312 then 10
313- else x("waves_min_sell")
313+ else n("waves_min_sell")
314314 let be = 1000000
315- let bf = if (a)
315+ let bf = if (c)
316316 then 1
317317 else (B * 2)
318- if (if (if (if (if ((aS == toBase58String(h)))
318+ if (if (if (if (if ((aS == toBase58String(j)))
319319 then (be > bc)
320320 else false)
321321 then (bc != 0)
322322 else false)
323323 then true
324- else if (if ((aS == toBase58String(g)))
324+ else if (if ((aS == toBase58String(i)))
325325 then (bf > bc)
326326 else false)
327327 then (bc != 0)
328328 else false)
329329 then true
330- else if (if (if ((aS == toBase58String(i)))
330+ else if (if (if ((aS == toBase58String(k)))
331331 then true
332332 else (aS == "WAVES"))
333333 then (bd > bc)
334334 else false)
335335 then (bc != 0)
336336 else false)
337337 then throw("Wrong minimum sell price")
338338 else true
339339 }
340340
341341
342342 func bg (aS) = if ((aS == "WAVES"))
343343 then unit
344344 else fromBase58String(aS)
345345
346346
347347 func bh (bi) = {
348- let bj = v((bi + "_OPEN"))
348+ let bj = a((bi + "_OPEN"))
349349 if ((bj == ""))
350350 then throw("Bid not found")
351351 else {
352352 let bk = split(bj, "_")
353353 let bl = parseIntValue(bk[1])
354354 let bm = bg(bk[0])
355355 if ((0 >= bl))
356356 then throw("Wrong amount")
357357 else $Tuple2(bl, bm)
358358 }
359359 }
360360
361361
362-func bn (aN) = if (!(p))
363- then throw(q)
362+func bn (aN) = if (!(v))
363+ then throw(w)
364364 else $Tuple3(toBase58String(aN.transactionId), toBase58String(aN.caller.bytes), lastBlock.timestamp)
365365
366366
367367 func bo (aN,P,bp,bq,br) = {
368368 let bs = bn(aN)
369369 let bt = bs._1
370370 let N = bs._2
371371 let bu = bs._3
372372 let bv = if (if (if ((toBase58String(aN.caller.bytes) == bp))
373373 then (br != "")
374374 else false)
375375 then (bq != "")
376376 else false)
377377 then true
378378 else false
379- let bw = y(ag(N, P))
379+ let bw = o(ag(N, P))
380380 if (if (if ((bw != 0))
381381 then (height >= bw)
382382 else false)
383383 then !(bv)
384384 else false)
385385 then throw("Sale ended.")
386386 else {
387387 let bx = (toBase58String(aN.caller.bytes) == bp)
388- let by = y("total_nft_issued")
389- let D = v(W(bp, P))
390- let bz = v(Q(bp, P))
388+ let by = o("total_nft_issued")
389+ let D = a(W(bp, P))
390+ let bz = a(Q(bp, P))
391391 if ((bz == ""))
392392 then throw("Art doesn't exist")
393393 else {
394- let bA = A(Y(bp, P))
395- let bB = y(X(bp, P))
394+ let bA = q(Y(bp, P))
395+ let bB = o(X(bp, P))
396396 let aY = if (bx)
397397 then (B * 2)
398- else y(af(bp, P))
398+ else o(af(bp, P))
399399 let aX = if (bx)
400- then toBase58String(g)
401- else v(ah(bp, P))
402- let bC = y(V(bp, P))
400+ then toBase58String(i)
401+ else a(ah(bp, P))
402+ let bC = o(V(bp, P))
403403 if (if (if (!(bv))
404404 then !(bx)
405405 else false)
406406 then if (if ((0 >= aY))
407407 then true
408408 else !(bA))
409409 then true
410410 else (0 >= bC)
411411 else false)
412412 then throw("Art not for sale")
413413 else if (if (if (!(bv))
414414 then bx
415415 else false)
416416 then (0 >= bC)
417417 else false)
418418 then throw("Max issuable not set")
419419 else {
420420 let aL = aC(bp)
421421 if (if (bv)
422422 then (aL != "")
423423 else false)
424424 then throw(aL)
425425 else {
426426 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
427427 let bD = if (bv)
428428 then bh(bi)
429429 else aW(aN, aX, aY)
430430 let aP = bD._1
431431 let aS = bD._2
432- let bE = valueOrElse(getString(e, aj(bp)), d)
433- let bF = valueOrElse(getInteger(e, al(bp)), 0)
434- let bG = z(bp)
432+ let bE = valueOrElse(getString(g, aj(bp)), f)
433+ let bF = valueOrElse(getInteger(g, al(bp)), 0)
434+ let bG = p(bp)
435435 let bH = if ((bG > height))
436436 then 0
437- else if ((aS == g))
438- then l
439- else m
437+ else if ((aS == i))
438+ then r
439+ else s
440440 let bI = fraction(aP, bH, 100)
441- let bJ = if (if (if ((bE != d))
441+ let bJ = if (if (if ((bE != f))
442442 then (bF > 0)
443443 else false)
444444 then (height > bG)
445445 else false)
446446 then fraction(aP, bF, 100)
447447 else 0
448448 let bK = (aP - bI)
449449 if ((bB == bC))
450450 then throw("Art sold out")
451451 else {
452452 let bL = (bB + 1)
453453 let bM = ((((((((((("Creator: " + bp) + ",
454454 ArtID: ") + P) + ",
455455 SignID: ") + D) + ",
456456 Artwork name: ") + bz) + ",
457457 Issue: ") + toString(bL)) + "/") + toString(bC))
458458 let bN = Issue(("SA_" + toString((by + 1))), bM, 1, 0, false)
459459 let bO = calculateAssetId(bN)
460460 let bP = if (if ((bL == bC))
461461 then true
462462 else !(bA))
463463 then false
464464 else true
465465 let bQ = if (if (if ((N == bp))
466466 then (br != "")
467467 else false)
468468 then (bq != "")
469469 else false)
470470 then addressFromStringValue(br)
471471 else aN.caller
472472 let bR = if (!(isDefined(aS)))
473473 then "WAVES"
474474 else toBase58String(value(aS))
475- let bj = v((bi + "_OPEN"))
475+ let bj = a((bi + "_OPEN"))
476476 let bS = DeleteEntry((bi + "_OPEN"))
477477 let bT = StringEntry((bi + "_CLOSED"), ((bj + "_") + toString(bu)))
478478 let bU = ((((((("art_sold_" + toString(bL)) + "_of_") + toString(bC)) + "_") + P) + "_") + bp)
479479 let bV = if (!(bv))
480480 then ((((((((((N + "_") + toString(bu)) + "_") + bt) + "_") + toString(aY)) + "_") + aX) + "_") + toBase58String(bO))
481481 else ((((((((((toString(bQ) + "_") + toString(bu)) + "_") + bt) + "_") + toString(aP)) + "_") + bR) + "_") + toBase58String(bO))
482482 let bW = StringEntry(bU, bV)
483483 let bX = if ((bJ != 0))
484- then [ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
485- else [ScriptTransfer(Address(fromBase58String(d)), bI, aS)]
484+ then [ScriptTransfer(Address(fromBase58String(f)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
485+ else [ScriptTransfer(Address(fromBase58String(f)), bI, aS)]
486486 let bY = ([IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(bQ, 1, bO)] ++ bX)
487487 if (bv)
488488 then [bW, bT, bS] :: bY
489489 else bW :: bY
490490 }
491491 }
492492 }
493493 }
494494 }
495495 }
496496
497497
498+@Callable(bZ)
499+func setConf (b,ca) = {
500+ let N = toString(bZ.caller)
501+ if (containsElement([l, toString(this)], N))
502+ then if (contains(ca, "conf_"))
503+ then [StringEntry(b, ca)]
504+ else throw("Entries starting with conf_ only")
505+ else throw("You are not allowed to change this")
506+ }
507+
508+
509+
498510 @Callable(aN)
499-func addArtwork (F,D,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = {
500- let cb = bn(aN)
501- let P = cb._1
502- let N = cb._2
503- let bu = cb._3
511+func addArtwork (F,D,aI,aJ,aK,cb,at,ax,au,ay,av,cc) = {
512+ let cd = bn(aN)
513+ let P = cd._1
514+ let N = cd._2
515+ let bu = cd._3
504516 if (!(K(F)))
505517 then throw("Hash should be 64 characters maximum")
506518 else {
507- let cc = aE(av, ay)
508- let aG = cc._1
509- let aH = cc._2
510- let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
511- if ((cd != ""))
519+ let ce = aE(av, ay)
520+ let aG = ce._1
521+ let aH = ce._2
522+ let cf = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
523+ if ((cf != ""))
512524 then throw("Something went wrong!")
513525 else {
514- let ce = aQ(aN)
515- let aP = ce._1
516- let aS = ce._2
526+ let cg = aQ(aN)
527+ let aP = cg._1
528+ let aS = cg._2
517529 if (!(isDefined(aP)))
518530 then throw("Something went wrong")
519531 else {
520- let cf = v(ar(F, N))
521- if ((cf != ""))
532+ let ch = a(ar(F, N))
533+ if ((ch != ""))
522534 then throw("You already added it")
523535 else {
524- let cg = v(ao(F))
525- if ((cg != ""))
536+ let ci = a(ao(F))
537+ if ((ci != ""))
526538 then throw("Hash already registered")
527539 else {
528- let ch = C(D, N, F)
529- if (!(ch))
540+ let cj = C(D, N, F)
541+ if (!(cj))
530542 then throw("Sign Certificate not found for this address.")
531- else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bZ), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), ca), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
543+ else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), cb), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), cc), ScriptTransfer(Address(fromBase58String(f)), aP, aS)]
532544 }
533545 }
534546 }
535547 }
536548 }
537549 }
538550
539551
540552
541553 @Callable(aN)
542-func updateArtwork (an,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = if (!(p))
543- then throw(q)
554+func updateArtwork (an,aI,aJ,aK,cb,at,ax,au,ay,av,cc) = if (!(v))
555+ then throw(w)
544556 else {
545557 let N = toBase58String(aN.caller.bytes)
546- let ci = aE(av, ay)
547- let aG = ci._1
548- let aH = ci._2
549- let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
550- if ((cd != ""))
558+ let ck = aE(av, ay)
559+ let aG = ck._1
560+ let aH = ck._2
561+ let cf = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
562+ if ((cf != ""))
551563 then throw("Something went wrong!")
552564 else {
553- let cf = v(Q(N, an))
554- if ((cf == ""))
565+ let ch = a(Q(N, an))
566+ if ((ch == ""))
555567 then throw("Entry not found")
556568 else {
557- let cj = v(ai(N, an))
558- if ((cj == "ILLEGAL"))
569+ let cl = a(ai(N, an))
570+ if ((cl == "ILLEGAL"))
559571 then throw("Cannot update ILLEGAL artwork")
560572 else if (!(aT(N, an)))
561- then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bZ), StringEntry(ae(N, an), ca)]
573+ then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), cb), StringEntry(ae(N, an), cc)]
562574 else throw("Already minted")
563575 }
564576 }
565577 }
566578
567579
568580
569581 @Callable(aN)
570-func flagArtwork (P,ck,cj,cl) = {
571- let cm = bn(aN)
572- let bt = cm._1
573- let N = cm._2
574- if (containsElement([j, toString(this)], N))
575- then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
576- then [StringEntry(ai(ck, P), cj), StringEntry(ad(ck, P), cl)]
577- else throw(("Unknow status " + cj))
582+func flagArtwork (P,cm,cl,cn) = {
583+ let co = bn(aN)
584+ let bt = co._1
585+ let N = co._2
586+ if (containsElement([l, toString(this)], N))
587+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cl))
588+ then [StringEntry(ai(cm, P), cl), StringEntry(ad(cm, P), cn)]
589+ else throw(("Unknow status " + cl))
578590 else throw("You are not allowed")
579591 }
580592
581593
582594
583595 @Callable(aN)
584-func deleteArtwork (P,ck) = {
585- let cn = bn(aN)
586- let bt = cn._1
587- let N = cn._2
588- let aU = if (containsElement([j, k, toString(this)], N))
589- then ck
596+func deleteArtwork (P,cm) = {
597+ let cp = bn(aN)
598+ let bt = cp._1
599+ let N = cp._2
600+ let aU = if (containsElement([l, m, toString(this)], N))
601+ then cm
590602 else N
591- let cf = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
592- if ((cf == ""))
603+ let ch = valueOrErrorMessage(a(Q(aU, P)), "No art matching for this address")
604+ if ((ch == ""))
593605 then throw("No art matching for this address")
594606 else {
595- let F = v(am(aU, P))
607+ let F = a(am(aU, P))
596608 if ((F == ""))
597609 then throw("No art hash matching for this address")
598610 else {
599- let D = v(W(aU, P))
611+ let D = a(W(aU, P))
600612 if ((D == ""))
601613 then throw("No SIGN ID matching")
602614 else {
603- let co = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
615+ let cq = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
604616 if (!(aT(aU, P)))
605- then if (!(p))
606- then throw(q)
607- else co
608- else if (containsElement([j, toString(this)], N))
609- then co
617+ then if (!(v))
618+ then throw(w)
619+ else cq
620+ else if (containsElement([l, toString(this)], N))
621+ then cq
610622 else throw("Art already minted, you cannot delete it")
611623 }
612624 }
613625 }
614626 }
615627
616628
617629
618630 @Callable(aN)
619-func sellArtwork (P,bc,cp,aS,bw) = {
620- let cq = bn(aN)
621- let bt = cq._1
622- let N = cq._2
623- let bz = v(Q(N, P))
631+func sellArtwork (P,bc,cr,aS,bw) = {
632+ let cs = bn(aN)
633+ let bt = cs._1
634+ let N = cs._2
635+ let bz = a(Q(N, P))
624636 if ((bz == ""))
625637 then throw("This art doesn't match your account")
626638 else {
627- let cj = v(ai(N, P))
628- if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
639+ let cl = a(ai(N, P))
640+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cl))
629641 then throw("Flagged artwork")
630642 else {
631- let cr = y(("current_bidamount_" + P))
643+ let ct = o(("current_bidamount_" + P))
632644 if ((0 > bw))
633645 then throw("Negative end")
634646 else if (if ((bw > 0))
635- then if ((cp != 1))
647+ then if ((cr != 1))
636648 then true
637649 else (bc != 0)
638650 else false)
639651 then throw("Timed offer only allowed for unique edition and offer only")
640652 else {
641- let cs = if ((bw == 0))
653+ let cu = if ((bw == 0))
642654 then 0
643655 else height
644656 if (!(ba(aS)))
645657 then throw("Something went wrong!")
646658 else if (!(bb(aS, bc)))
647659 then throw("Something went wrong!")
648660 else {
649661 let aL = aC(N)
650662 if ((aL != ""))
651663 then throw(aL)
652664 else {
653- let bB = y(X(N, P))
654- let bC = y(V(N, P))
655- if ((cp > 100))
665+ let bB = o(X(N, P))
666+ let bC = o(V(N, P))
667+ if ((cr > 100))
656668 then throw("100 editions max per artwork")
657669 else if (if ((bB != 0))
658670 then (bB == bC)
659671 else false)
660672 then throw("Max edition reached.")
661673 else if (if ((bB > 0))
662- then (bC != cp)
674+ then (bC != cr)
663675 else false)
664676 then throw("Cannot change maximum issuable anymore")
665- else if (if ((cr > 0))
666- then (bC != cp)
677+ else if (if ((ct > 0))
678+ then (bC != cr)
667679 else false)
668680 then throw("Cannot change maximum issuable with active orders")
669681 else {
670682 let bP = if (if ((bc > 0))
671- then (cp > 0)
683+ then (cr > 0)
672684 else false)
673685 then true
674686 else false
675-[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cp), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cs + bw))]
687+[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cr), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cu + bw))]
676688 }
677689 }
678690 }
679691 }
680692 }
681693 }
682694 }
683695
684696
685697
686698 @Callable(aN)
687699 func buyArtwork (P,bp) = bo(aN, P, bp, "", "")
688700
689701
690702
691703 @Callable(aN)
692704 func setBid (P,bp) = {
693- let ct = bn(aN)
694- let bt = ct._1
695- let N = ct._2
696- let bu = ct._3
697- let cu = aM(aN)
698- let aO = cu._1
699- let aP = cu._2
705+ let cv = bn(aN)
706+ let bt = cv._1
707+ let N = cv._2
708+ let bu = cv._3
709+ let cw = aM(aN)
710+ let aO = cw._1
711+ let aP = cw._2
700712 let aS = if (!(isDefined(aO.assetId)))
701713 then "WAVES"
702714 else toBase58String(value(aO.assetId))
703- let bw = y(ag(bp, P))
715+ let bw = o(ag(bp, P))
704716 if (if ((bw != 0))
705717 then (height >= bw)
706718 else false)
707719 then throw("Sale ended.")
708720 else {
709- let cr = y(("current_bidamount_" + P))
721+ let ct = o(("current_bidamount_" + P))
710722 if (!(ba(aS)))
711723 then throw("asset not accepted")
712724 else if (!(bb(aS, aP)))
713725 then throw("Wrong min sell")
714726 else {
715- let bB = y(X(bp, P))
716- let bC = y(V(bp, P))
727+ let bB = o(X(bp, P))
728+ let bC = o(V(bp, P))
717729 if ((0 >= bC))
718730 then throw("No max edition set for this artwork")
719731 else if ((bB >= bC))
720732 then throw("Sold out, you cannot bid")
721- else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr + 1))]
733+ else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (ct + 1))]
722734 }
723735 }
724736 }
725737
726738
727739
728740 @Callable(aN)
729741 func acceptBid (P,bp,bq,br) = {
730742 let N = toBase58String(aN.caller.bytes)
731743 if ((N != bp))
732744 then throw("You cannot do this action")
733745 else bo(aN, P, bp, bq, br)
734746 }
735747
736748
737749
738750 @Callable(aN)
739751 func cancelBid (P,bp,bq,br) = {
740- let cv = bn(aN)
741- let bt = cv._1
742- let N = cv._2
743- let bu = cv._3
752+ let cx = bn(aN)
753+ let bt = cx._1
754+ let N = cx._2
755+ let bu = cx._3
744756 if (if ((N != br))
745757 then (N != bp)
746758 else false)
747759 then throw("You cannot do this action")
748760 else {
749- let cw = if ((N == bp))
761+ let cy = if ((N == bp))
750762 then br
751763 else N
752- let cr = y(("current_bidamount_" + P))
764+ let ct = o(("current_bidamount_" + P))
753765 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
754- let bj = v((bi + "_OPEN"))
766+ let bj = a((bi + "_OPEN"))
755767 if ((bj == ""))
756768 then throw("Bid not found")
757769 else {
758770 let bk = split(bj, "_")
759771 let aS = bg(bk[0])
760- let cx = "CANCELED"
761-[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cx), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr - 1)), ScriptTransfer(Address(fromBase58String(cw)), parseIntValue(bk[1]), aS)]
772+ let cz = "CANCELED"
773+[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cz), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (ct - 1)), ScriptTransfer(Address(fromBase58String(cy)), parseIntValue(bk[1]), aS)]
762774 }
763775 }
764776 }
765777
766778

github/deemru/w8io/169f3d6 
216.37 ms