tx · XHKofwjzd4h99XTAjKRacEucoTZ9Hv32KzLrp7JBvRX

3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q:  -0.01400000 Waves

2020.08.03 21:43 [1116579] smart account 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q > SELF 0.00000000 Waves

{ "type": 13, "id": "XHKofwjzd4h99XTAjKRacEucoTZ9Hv32KzLrp7JBvRX", "fee": 1400000, "feeAssetId": null, "timestamp": 1596480210858, "version": 1, "sender": "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q", "senderPublicKey": "6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67", "proofs": [ "2pXvDpPn9XAv6APPsWg2DzjKttUKtfTf1uWotd3P9jQ2VE7q7nTvnZ2bDGAwHqUJ54Z7XqyaKXjNteQ49AU7UEim" ], "script": "base64:AAIDAAAAAAAAADMIARIECgIICBIHCgUICAgBARIICgYICAgBAQgSBgoECAgIARIICgYICAgBAQgSBAoCCAEAAABIAAAAAAd4Qml0Q08yAQAAACAgBGSmqgN7DW+mqvqXJVizlol6Uwz/77rGaIdsg1TcjQAAAAAIc3RhcnRRdHkAAAAAAAAEqh0AAAAADEZpcnN0RmFzZVF0eQAAAAAAAAB52QAAAAANU2Vjb25kRmFzZVF0eQAAAAAAAAQwRAAAAAAIbm9tUHJpY2UAAAAAAAAAAAEAAAAAA3d2cwAAAAAABfXhAAAAAAAQc3VwcGxpZXJEaXNjb3VudAAAAAAAAAAADAAAAAAETk9ORQIAAAAEbm9uZQAAAAALT3duZXJQdWJLZXkBAAAAIFeDoPP2LDG5bo5k3c5sKTo0JzDTjtxRuDTL9ibJxOUUAAAAAAZpc3N1ZXIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVRLSBWPuSFPLJbx2twGJ4pjbyHR1uc9l9oAAAAABGVBZGQJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVRMFqg79sYEM4GubTrgxY0KxnODB2XEwvIAAAAABHBBZGQJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSvhVyfjAEHvwKgtoZrZYO4od8/0d33wzIAAAAAA2lndgAAAAAAAAAAEgAAAAADY1BCAAAAAAAAAABYAAAAAAN1SVAAAAAAAAAAAAUAAAAAA3BJUAAAAAAAAAAACgAAAAADc0lQAAAAAAAAAAABAAAAAANlSVAAAAAAAAAAAAEBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAICAAAAGVJlc2VydmEgQW1hesOzbmljYSBBY2h1YXICAAAAASAJAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABGl0ZW0BAAAAFWdldEtleVByb2plY3RDYXRlZ29yeQAAAAEAAAAEaXRlbQIAAAALQ2F0ZWdvcsOtYToBAAAAF2dldFZhbHVlUHJvamVjdENhdGVnb3J5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAVZ2V0S2V5UHJvamVjdENhdGVnb3J5AAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5UHJvamVjdFR5cGUAAAABAAAABGl0ZW0CAAAAEVRpcG8gZGUgUHJveWVjdG86AQAAABNnZXRWYWx1ZVByb2plY3RUeXBlAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5UHJvamVjdFR5cGUAAAABBQAAAARpdGVtAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABAAAACHN1cHBsaWVyAgAAACNDb211bmlkYWQgQWNodWFyIEthcGF3aSBkZWwgRWN1YWRvcgEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAACHN1cHBsaWVyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIBAAAAEWdldEtleVByb2plY3RDb2RlAAAAAQAAAARpdGVtAgAAAAhDw7NkaWdvOgEAAAATZ2V0VmFsdWVQcm9qZWN0Q29kZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3RDb2RlAAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5UHJvamVjdE5hbWUAAAABAAAABGl0ZW0CAAAAFE5vbWJyZSBkZWwgUHJveWVjdG86AQAAABNnZXRWYWx1ZVByb2plY3ROYW1lAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5UHJvamVjdE5hbWUAAAABBQAAAARpdGVtAQAAABJnZXRLZXlQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzAgAAAB1BY2h1YXJLYXBhd2ksIEkgRXRhcGE6IFByZUlDTwEAAAAUZ2V0VmFsdWVQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5UHJvamVjdEV0YXBhAAAAAQUAAAAOcHJvamVjdEFkZHJlc3MBAAAAFGdldEtleVByb2plY3RDb3VudHJ5AAAAAQAAAARpdGVtAgAAABNQYcOtcyAvIFViaWNhY2nDs246AQAAABZnZXRWYWx1ZVByb2plY3RDb3VudHJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5UHJvamVjdENvdW50cnkAAAABBQAAAARpdGVtAQAAABBnZXRLZXlQcm9qZWN0RGV2AAAAAQAAAAhzdXBwbGllcgIAAAAcRGVzYXJyb2xsYWRvciAvIFJlc3BvbnNhYmxlOgEAAAASZ2V0VmFsdWVQcm9qZWN0RGV2AAAAAQAAAAhzdXBwbGllcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleVByb2plY3REZXYAAAABBQAAAAhzdXBwbGllcgEAAAASZ2V0S2V5Rmlyc3RGYXNlUXR5AAAAAQAAAARpdGVtAgAAACdUb3RhbCB0b2tlbnMgZW1pdGlkb3MgZW4gSSBGYXNlIFByZS1JQ08BAAAAFGdldFZhbHVlRmlyc3RGYXNlUXR5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5Rmlyc3RGYXNlUXR5AAAAAQUAAAAEaXRlbQEAAAATZ2V0S2V5Tm9tVG9rZW5QcmljZQAAAAEAAAAEaXRlbQIAAAALMTAuMDAgRXVyb3MBAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAAAZfd2F2ZXMBAAAAGWdldFZhbHVlSXRlbVByaWNlU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAEmdldEtleU1heERlc2N1ZW50bwAAAAEAAAAEaXRlbQIAAAApTcOheGltbyBEZXNjdWVudG8gT2ZyZWNpZG8gZW4gSSBFdGFwYSwgJToBAAAAFGdldFZhbHVlTWF4RGVzY3VlbnRvAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5TWF4RGVzY3VlbnRvAAAAAQUAAAAEaXRlbQEAAAATZ2V0S2V5TWluVG9rZW5QcmljZQAAAAEAAAAEaXRlbQIAAAAeOC44MCBFdXJvcyBwb3IgMSB0b2tlbiBCaXQtQ08yAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQIAAAAKT3JkZXJf4oSWOgEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAADmdldEtleVVzZXJOYW1lAAAAAQAAAARpdGVtAgAAABNOb21icmUgZGVsIFVzdWFyaW86AQAAABBnZXRWYWx1ZVVzZXJOYW1lAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5VXNlck5hbWUAAAABBQAAAARpdGVtAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0CAAAAOeKEliBkZSBEb2N1bWVudG8gTmFjaW9uYWwgZGUgSWRlbnRpZGFkIC8gRE5JIGRlbCBVc3VhcmlvOgEAAAAUZ2V0VmFsdWVVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABBQAAAARpdGVtAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEAAAAEaXRlbQIAAAASUGHDrXMgZGVsIFVzdWFyaW86AQAAABNnZXRWYWx1ZVVzZXJDb3VudHJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtAgAAACREZXNjdWVudG8gZWxlamlkbyBwb3IgZWwgVXN1YXJpbywgJToBAAAAGGdldFZhbHVlSXRlbURpc2NvdW50VXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABBQAAAARpdGVtAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEAAAAEaXRlbQIAAAAYU3VwcGxpZXJEaXNjb3VudCwgbWF4XyU6AQAAABxnZXRWYWx1ZUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAaZ2V0S2V5SXRlbURpc2NvdW50U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQAAAARpdGVtAgAAACVPcmRlbiBkZSBDb21wcmEsIGNhbnRpZGFkIHNvbGljaXRhZGE6AQAAABhnZXRWYWx1ZUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQEAAAAdZ2V0S2V5U2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABAAAABGl0ZW0CAAAALlRva2VucyBPZmVydGFkb3MgZW4gbGEgcHJlc2VudGUgZXRhcGEgLyBTYWxkbzoBAAAAH2dldFZhbHVlU2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0BAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQIAAAAWQmFsYW5jZS9TYWxkbywgdG9rZW5zOgEAAAAaZ2V0VmFsdWVCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABAAAACHN1cHBsaWVyAgAAAChJbmdyZXNvcyBwb3IgVmVudGEgRGlyZWN0YSAvIEJsb2NrQ2hhaW46AQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgEAAAAIZ2V0S2V5VUkAAAABAAAABGl0ZW0CAAAACFVJLF93dnM6AQAAAApnZXRWYWx1ZVVJAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAIZ2V0S2V5VUkAAAABBQAAAARpdGVtAQAAAAhnZXRLZXlQSQAAAAEAAAAEaXRlbQIAAAAGUEksXyU6AQAAAApnZXRWYWx1ZVBJAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAIZ2V0S2V5UEkAAAABBQAAAARpdGVtAQAAAAhnZXRLZXlTSQAAAAEAAAAEaXRlbQIAAAAGU0ksXyU6AQAAAApnZXRWYWx1ZVNJAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAIZ2V0S2V5U0kAAAABBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQIAAAANZGVzY3JpcHRpb246IAAAAAYAAAABaQEAAAAHZGVwb3NpdAAAAAIAAAAFdGl0bGUAAAAMc3VwcGxpZXJEYXRhBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAHeEJpdENPMgkAAAIAAAABAgAAAClkZXBvc2l0byBwZXJtaXRpZG8gc29sbyBlbiB4Qml0Q08yIHRva2VucwQAAAAIc3VwcGxpZXIJAAJYAAAA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TAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAUZ2V0S2V5UHJvamVjdENvdW50cnkAAAABBQAAAARpdGVtAgAAAAggRWN1YWRvcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldEtleVByb2plY3ROYW1lAAAAAQUAAAAEaXRlbQIAAAAhIFJlc2VydmEgQW1hesOzbmljYSBBY2h1YXItS2FwYXdpCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5UHJvamVjdENvZGUAAAABBQAAAARpdGVtAgAAAB0gMDAxLUVDL1NHVCAtIEFDSFVBUktBUEFXSS0wMQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAHRW1pc29yOgIAAAAYIENvbXVuaWRhZCBBY2h1YXIgS2FwYXdpCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5UHJvamVjdERldgAAAAEFAAAACHN1cHBsaWVyAgAAAB0gRnVuZGFjacOzbiBFY29sw7NnaWNhICdOQVNFJwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAcRmFzZXMgZGVsIFByb3llY3RvLCBQcmUtSUNPOgIAAAAMIEkgeSBJSSBGYXNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAEFDYW50aWRhZCBUb3RhbCBkZSBUb2tlbnMgQml0LUNPMiBhIEVtaXRpciBlbiBJIHkgSUkgRmFzZSBQcmUtSUNPOgUAAAAIc3RhcnRRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAIFByZWNpbyBOb21pbmFsLCAxIHRva2VuIEJpdC1DTzI6AgAAAAwgMTAuMDAgRXVyb3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlNYXhEZXNjdWVudG8AAAABBQAAAARpdGVtAgAAAAYgMTIuMDAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUZpcnN0RmFzZVF0eQAAAAEFAAAABGl0ZW0FAAAADEZpcnN0RmFzZVF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmdldEtleVVzZXJOYW1lAAAAAQUAAAAEaXRlbQUAAAAIdXNlck5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0FAAAAC3VzZXJDb3VudHJ5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0S2V5SXRlbURpc2NvdW50VXNlcgAAAAEFAAAABGl0ZW0FAAAADHVzZXJEaXNjb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtBQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAYdG9rZW5QcmljZS9TdXBwbGllciwgd3ZzCQAAaAAAAAIFAAAACG5vbVByaWNlBQAAAAN3dnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFHRva2VuUHJpY2UvVXNlciwgd3ZzBQAAABFjdXJyZW50VG9rZW5QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAYaW52ZXN0ZWRBbW91bnQvVXNlciwgd3ZzBQAAAAt0b3RhbEFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAVcHVyY2hhc2VPcmRlci9TdGF0dXM6AgAAABrCoUFkcXVpc2ljacOzbiBDb25maXJtYWRhIQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0JAABlAAAAAgUAAAAJcHJlSWNvUXR5BQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQkAAGUAAAACBQAAAAlwcmVJY29RdHkFAAAACG9yZGVyUXR5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIJAABkAAAAAgUAAAAPYmFsYW5jZVN1cHBsaWVyCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAsRGlyZWNjacOzbiBkZWwgUHJveWVjdG8gZW4gV2F2ZXMtQmxvY2tDaGFpbjoCAAAAJSAzTjV2OW5kYmtHU1d5MVNmZUpTejk0dFlVOHFWTlRVSlYycSAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAhvcmRlclF0eQUAAAAHeEJpdENPMgUAAAADbmlsAAAAAWkBAAAAEEFkZFN1cHBsaWVyVG9rZW4AAAAGAAAABXRpdGxlAAAABG5hbWUAAAAHY291bnRyeQAAAAlwcmVJY29RdHkAAAAQc3VwcGxpZXJEaXNjb3VudAAAAAxzdXBwbGllckRhdGEEAAAACHN1cHBsaWVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAwkAAGcAAAACAAAAAAAAAAAABQAAAAlwcmVJY29RdHkJAAACAAAAAQIAAAAfU29ycnksIGluc3VmZmljaWVudCB0b2tlbiBvZmZlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwA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", "chainId": 84, "height": 1116579, "spentComplexity": 0 } View: original | compacted Prev: APm91TbfvaXpx3XzD8iYWjGJFGjUEiK5NMqQ3dJcpmUh Next: 3QyvsCrof7CZGcxGwSe6Vg4YbnnB2Y92aGFBq7nZsZhq Diff:
OldNewDifferences
44 let xBitCO2 = base58'39yw38hm342hiK43SqELTaZRkTWJoBc22XpxmsSiBrsN'
55
66 let startQty = 305693
7+
8+let FirstFaseQty = 31193
9+
10+let SecondFaseQty = 274500
711
812 let nomPrice = 1
913
5559 }
5660
5761
58-func getKeyItem (supplier,item) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + item)))))
62+func getKeyItem (supplier,item) = (("Reserva Amazónica Achuar" + " ") + toBase58String(sha256(toBytes((supplier + item)))))
5963
6064
6165 func getKeyProjectCategory (item) = "Categoría:"
7074 func getValueProjectType (item) = getStrByKey(getKeyProjectType(item))
7175
7276
73-func getKeyItemSupplier (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
77+func getKeyItemSupplier (supplier) = "Comunidad Achuar Kapawi del Ecuador"
7478
7579
7680 func getValueItemSupplier (supplier) = getStrByKey(getKeyItemSupplier(supplier))
106110 func getValueProjectDev (supplier) = getStrByKey(getKeyProjectDev(supplier))
107111
108112
109-func getKeyTokenStartQty (item) = "15693 tokens Bit-CO2"
113+func getKeyFirstFaseQty (item) = "Total tokens emitidos en I Fase Pre-ICO"
114+
115+
116+func getValueFirstFaseQty (item) = getStrByKey(getKeyFirstFaseQty(item))
110117
111118
112119 func getKeyNomTokenPrice (item) = "10.00 Euros"
261268 then throw("Payment Amount can't be less than item Purchase Order")
262269 else if ((pmt.amount > totalAmount))
263270 then throw("Payment Amount can't be higher than item Purchase Order")
264- else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry(getKeyMaxDescuento(item), " 12.00"), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry("Total tokens emitidos, I Etapa Pre-ICO", startQty), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("tokenPrice/Supplier, wvs", (nomPrice * wvs)), DataEntry("tokenPrice/User, wvs", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry((("" + getKeyItem(supplier, item)) + ""), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry("Address del Proyecto en BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
271+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry(getKeyItemSupplier(supplier), getValueItemSupplier(supplier)), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Fases del Proyecto, Pre-ICO:", " I y II Fase"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir en I y II Fase Pre-ICO:", startQty), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry(getKeyMaxDescuento(item), " 12.00"), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyFirstFaseQty(item), FirstFaseQty), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("tokenPrice/Supplier, wvs", (nomPrice * wvs)), DataEntry("tokenPrice/User, wvs", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry("Dirección del Proyecto en Waves-BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
265272 }
266273 }
267274
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let xBitCO2 = base58'39yw38hm342hiK43SqELTaZRkTWJoBc22XpxmsSiBrsN'
55
66 let startQty = 305693
7+
8+let FirstFaseQty = 31193
9+
10+let SecondFaseQty = 274500
711
812 let nomPrice = 1
913
1014 let wvs = 100000000
1115
1216 let supplierDiscount = 12
1317
1418 let NONE = "none"
1519
1620 let OwnerPubKey = base58'6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67'
1721
1822 let issuer = Address(base58'3Mvn8oonnpiasA3bkq36N9qeqqXWfFW437o')
1923
2024 let eAdd = Address(base58'3MvrQGkHQtyLTC2QXgPnQ6oCEWhHyUJpU4q')
2125
2226 let pAdd = Address(base58'3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q')
2327
2428 let igv = 18
2529
2630 let cPB = 88
2731
2832 let uIP = 5
2933
3034 let pIP = 10
3135
3236 let sIP = 1
3337
3438 let eIP = 1
3539
3640 func getNumberByKey (key) = {
3741 let num = match getInteger(this, key) {
3842 case a: Int =>
3943 a
4044 case _ =>
4145 0
4246 }
4347 num
4448 }
4549
4650
4751 func getStrByKey (key) = {
4852 let str = match getString(this, key) {
4953 case a: String =>
5054 a
5155 case _ =>
5256 NONE
5357 }
5458 str
5559 }
5660
5761
58-func getKeyItem (supplier,item) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + item)))))
62+func getKeyItem (supplier,item) = (("Reserva Amazónica Achuar" + " ") + toBase58String(sha256(toBytes((supplier + item)))))
5963
6064
6165 func getKeyProjectCategory (item) = "Categoría:"
6266
6367
6468 func getValueProjectCategory (item) = getStrByKey(getKeyProjectCategory(item))
6569
6670
6771 func getKeyProjectType (item) = "Tipo de Proyecto:"
6872
6973
7074 func getValueProjectType (item) = getStrByKey(getKeyProjectType(item))
7175
7276
73-func getKeyItemSupplier (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
77+func getKeyItemSupplier (supplier) = "Comunidad Achuar Kapawi del Ecuador"
7478
7579
7680 func getValueItemSupplier (supplier) = getStrByKey(getKeyItemSupplier(supplier))
7781
7882
7983 func getKeyProjectCode (item) = "Código:"
8084
8185
8286 func getValueProjectCode (item) = getStrByKey(getKeyProjectCode(item))
8387
8488
8589 func getKeyProjectName (item) = "Nombre del Proyecto:"
8690
8791
8892 func getValueProjectName (item) = getStrByKey(getKeyProjectName(item))
8993
9094
9195 func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
9296
9397
9498 func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
9599
96100
97101 func getKeyProjectCountry (item) = "País / Ubicación:"
98102
99103
100104 func getValueProjectCountry (item) = getStrByKey(getKeyProjectCountry(item))
101105
102106
103107 func getKeyProjectDev (supplier) = "Desarrollador / Responsable:"
104108
105109
106110 func getValueProjectDev (supplier) = getStrByKey(getKeyProjectDev(supplier))
107111
108112
109-func getKeyTokenStartQty (item) = "15693 tokens Bit-CO2"
113+func getKeyFirstFaseQty (item) = "Total tokens emitidos en I Fase Pre-ICO"
114+
115+
116+func getValueFirstFaseQty (item) = getStrByKey(getKeyFirstFaseQty(item))
110117
111118
112119 func getKeyNomTokenPrice (item) = "10.00 Euros"
113120
114121
115122 func getKeyItemPriceSupplier (item) = "_waves"
116123
117124
118125 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
119126
120127
121128 func getKeyMaxDescuento (item) = "Máximo Descuento Ofrecido en I Etapa, %:"
122129
123130
124131 func getValueMaxDescuento (item) = getNumberByKey(getKeyMaxDescuento(item))
125132
126133
127134 func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
128135
129136
130137 func getKeyUserItemCounter (user,item) = "Order_№:"
131138
132139
133140 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
134141
135142
136143 func getKeyUserName (item) = "Nombre del Usuario:"
137144
138145
139146 func getValueUserName (item) = getStrByKey(getKeyUserName(item))
140147
141148
142149 func getKeyUserDocument (item) = "№ de Documento Nacional de Identidad / DNI del Usuario:"
143150
144151
145152 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
146153
147154
148155 func getKeyUserCountry (item) = "País del Usuario:"
149156
150157
151158 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
152159
153160
154161 func getKeyItemDiscountUser (item) = "Descuento elejido por el Usuario, %:"
155162
156163
157164 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
158165
159166
160167 func getKeyItemDiscountSupplier (item) = "SupplierDiscount, max_%:"
161168
162169
163170 func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
164171
165172
166173 func getKeyItemUserOrderQty (item) = "Orden de Compra, cantidad solicitada:"
167174
168175
169176 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
170177
171178
172179 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo:"
173180
174181
175182 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
176183
177184
178185 func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
179186
180187
181188 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
182189
183190
184191 func getKeyBalanceSupplier (supplier) = "Ingresos por Venta Directa / BlockChain:"
185192
186193
187194 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
188195
189196
190197 func getKeyUI (item) = "UI,_wvs:"
191198
192199
193200 func getValueUI (item) = getNumberByKey(getKeyUI(item))
194201
195202
196203 func getKeyPI (item) = "PI,_%:"
197204
198205
199206 func getValuePI (item) = getNumberByKey(getKeyPI(item))
200207
201208
202209 func getKeySI (item) = "SI,_%:"
203210
204211
205212 func getValueSI (item) = getNumberByKey(getKeySI(item))
206213
207214
208215 func getKeyItemData (item) = "description: "
209216
210217
211218 @Callable(i)
212219 func deposit (title,supplierData) = {
213220 let pmt = extract(i.payment)
214221 if ((pmt.assetId != xBitCO2))
215222 then throw("deposito permitido solo en xBitCO2 tokens")
216223 else {
217224 let supplier = toBase58String(i.caller.bytes)
218225 let currentAmount = match getInteger(this, supplier) {
219226 case a: Int =>
220227 a
221228 case _ =>
222229 startQty
223230 }
224231 let newAmount = (currentAmount + pmt.amount)
225232 if ((0 >= newAmount))
226233 then throw("No hay xBitCO2 en su balance")
227234 else WriteSet([DataEntry(supplier, newAmount)])
228235 }
229236 }
230237
231238
232239
233240 @Callable(i)
234241 func purchase (item,userName,userCountry,userDiscount,orderQty) = {
235242 let pmt = extract(i.payment)
236243 if (isDefined(pmt.assetId))
237244 then throw("En la presente Plastaforma Ud. puede adquirir sus tokens xBitCO2 usando WavesKeeper y su token de pago Waves.")
238245 else {
239246 let supplier = match getString(this, getKeyItemSupplier(item)) {
240247 case a: String =>
241248 a
242249 case _ =>
243250 NONE
244251 }
245252 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
246253 case a: Int =>
247254 a
248255 case _ =>
249256 startQty
250257 }
251258 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
252259 case a: Int =>
253260 a
254261 case _ =>
255262 0
256263 }
257264 let userAddress = toBase58String(i.caller.bytes)
258265 let currentTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
259266 let totalAmount = (orderQty * currentTokenPrice)
260267 if ((totalAmount > pmt.amount))
261268 then throw("Payment Amount can't be less than item Purchase Order")
262269 else if ((pmt.amount > totalAmount))
263270 then throw("Payment Amount can't be higher than item Purchase Order")
264- else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry(getKeyMaxDescuento(item), " 12.00"), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry("Total tokens emitidos, I Etapa Pre-ICO", startQty), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("tokenPrice/Supplier, wvs", (nomPrice * wvs)), DataEntry("tokenPrice/User, wvs", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry((("" + getKeyItem(supplier, item)) + ""), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry("Address del Proyecto en BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
271+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry(getKeyItemSupplier(supplier), getValueItemSupplier(supplier)), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Fases del Proyecto, Pre-ICO:", " I y II Fase"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir en I y II Fase Pre-ICO:", startQty), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry(getKeyMaxDescuento(item), " 12.00"), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyFirstFaseQty(item), FirstFaseQty), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("tokenPrice/Supplier, wvs", (nomPrice * wvs)), DataEntry("tokenPrice/User, wvs", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry("Dirección del Proyecto en Waves-BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
265272 }
266273 }
267274
268275
269276
270277 @Callable(i)
271278 func AddSupplierToken (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
272279 let supplier = toBase58String(i.caller.bytes)
273280 let item = getKeyItem(supplier, title)
274281 if ((0 >= preIcoQty))
275282 then throw("Sorry, insufficient token offer")
276283 else WriteSet([DataEntry(("Supplier:_" + getKeyProjectDev(item)), supplier), DataEntry(("Title:_" + supplier), title), DataEntry(("ProjectName:_" + supplier), name), DataEntry(("Country:_" + supplier), country), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty), DataEntry(("NomTokenPrice:_" + getKeyItemPriceSupplier(item)), (nomPrice * wvs)), DataEntry(("Max_Descuento_ofrecido:" + getKeyItemDiscountSupplier(item)), supplierDiscount), DataEntry(("Development:_" + getKeyItemData(item)), supplierData)])
277284 }
278285
279286
280287
281288 @Callable(i)
282289 func purchaseGTS (item,userName,userDocument,totalAmount) = {
283290 let pmt = extract(i.payment)
284291 if (isDefined(pmt.assetId))
285292 then throw("El Precio de los aves.")
286293 else {
287294 let supplier = match getString(this, getKeyItemSupplier(item)) {
288295 case a: String =>
289296 a
290297 case _ =>
291298 NONE
292299 }
293300 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
294301 case a: Int =>
295302 a
296303 case _ =>
297304 startQty
298305 }
299306 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
300307 case a: Int =>
301308 a
302309 case _ =>
303310 0
304311 }
305312 let userAddress = toBase58String(i.caller.bytes)
306313 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
307314 let uI = ((subTotal * uIP) / 100)
308315 let uBI = (uI / cPB)
309316 let pI = ((subTotal * pIP) / 100)
310317 let eI = ((subTotal * eIP) / 100)
311318 let eBI = ((subTotal * eIP) / (cPB * 100))
312319 let sI = ((totalAmount - pI) - eI)
313320 let sBI = ((subTotal * sIP) / (cPB * 100))
314321 if ((totalAmount > pmt.amount))
315322 then throw("Payment Amount can't be less than item Purchase Order")
316323 else if ((pmt.amount > totalAmount))
317324 then throw("Payment Amount can't be higher than item Purchase Order")
318325 else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), DataEntry("Payment_amount,_wvs", totalAmount), DataEntry("Imp, %", igv), DataEntry("STtl, wvs", subTotal), DataEntry("CP 1 B, wvs", (cPB * 1000000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI", uBI), DataEntry(getKeyPI(item), pI), DataEntry("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "Adquisición Confirmada!"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uBI, xBitCO2), ScriptTransfer(pAdd, pI, unit), ScriptTransfer(issuer, sI, unit), ScriptTransfer(issuer, sBI, xBitCO2), ScriptTransfer(eAdd, eI, unit), ScriptTransfer(eAdd, eBI, xBitCO2)]))
319326 }
320327 }
321328
322329
323330
324331 @Callable(i)
325332 func AddVendedorGTS (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
326333 let supplier = toBase58String(i.caller.bytes)
327334 let item = getKeyItem(supplier, title)
328335 if ((0 >= preIcoQty))
329336 then throw("Sorry, insufficient token offer")
330337 else WriteSet([DataEntry(("Supplier:_" + getKeyProjectDev(item)), supplier), DataEntry(("Title:_" + supplier), title), DataEntry(("ProjectName:_" + supplier), name), DataEntry(("Country:_" + supplier), country), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty), DataEntry(("NomTokenPrice:_" + getKeyItemPriceSupplier(item)), (nomPrice * wvs)), DataEntry(("Max_Descuento_ofrecido:" + getKeyItemDiscountSupplier(item)), supplierDiscount), DataEntry(("Development:_" + getKeyItemData(item)), supplierData)])
331338 }
332339
333340
334341
335342 @Callable(i)
336343 func withdraw (item,amount) = {
337344 let userAddress = toBase58String(i.caller.bytes)
338345 let supplier = match getString(this, getKeyItemSupplier(item)) {
339346 case a: String =>
340347 a
341348 case _ =>
342349 NONE
343350 }
344351 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
345352 case a: Int =>
346353 a
347354 case _ =>
348355 startQty
349356 }
350357 let newAmount = (preIcoQty - amount)
351358 if ((0 > amount))
352359 then throw("El balance de retiro no puede ser negativo!")
353360 else if ((0 >= newAmount))
354361 then throw("Ooppss.. Insuficiente balance!")
355362 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, xBitCO2)]))
356363 }
357364
358365
359366 @Verifier(tx)
360367 func verify () = match tx {
361368 case t: SetScriptTransaction =>
362369 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
363370 case d: DataTransaction|ReissueTransaction =>
364371 true
365372 case tx: TransferTransaction =>
366373 true
367374 case tx: ExchangeTransaction =>
368375 let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
369376 then true
370377 else !(isDefined(tx.sellOrder.assetPair.amountAsset))
371378 withWaves
372379 case _ =>
373380 false
374381 }
375382

github/deemru/w8io/c3f4982 
72.27 ms