- "Value": "contract TsTransferAdmin {\n data {\n WalletStr string\n CurrencyType int\n AmountApl money\n TransferredDate string\n TransferredTime string\n }\n\n func getRoleId(name string) int {\n var rid int\n rid = Int(EcosysParam(name))\n if rid == 0 {\n warning Sprintf(LangRes(\"@1role_not_set_application_parameter\", \"en\"), name)\n }\n return rid\n }\n\n func dateAddTime(d, t string) string {\n var dt string\n if Contains(d, \"T00:00:00Z\") {\n d = Replace(d, \"T00:00:00Z\", \"\")\n }\n if Size(t) == 5 {\n dt = Sprintf(\"%v %v:00\", d, t)\n }\n return dt\n }\n\n conditions {\n $WAITING_MANAGER = 1\n $WAITING_SELLER = 2\n $FINISHED = 3\n $REJECTED = 4\n if $AmountApl <= 0 {\n warning \"invalid amount APLA\"\n }\n\n $transferredAt = UnixDateTime(dateAddTime($TransferredDate, $TransferredTime))\n if $transferredAt == 0 {\n warning \"invalid transfer datetime\"\n }\n $appId = Int(DBFind(\"@1applications\").Where({ecosystem:$ecosystem_id, name:\"Tokens sale\"}).One(\"id\"))\n if $appId == 0 {\n warning LangRes(\"@1app_not_found\", \"en\")\n }\n $currentRole = getRoleId(\"role_sale_admin\")\n if !RoleAccess($currentRole) {\n warning \"this action allowed only for role id #\" + $currentRole\n }\n\n if $CurrencyType <= 0 || $CurrencyType > 3 {\n warning \"Invalid Currency Type\"\n }\n\n if $CurrencyType == 1 {\n $wallet = DBFind(\"ts_wallets\").Where({wallet_btc: $WalletStr}).Row()\n }\n if $CurrencyType == 2 {\n $wallet = DBFind(\"ts_wallets\").Where({wallet_eth: $WalletStr}).Row()\n }\n if $CurrencyType == 3 {\n if $WalletStr == \"\" {\n warning LangRes(\"@1public_key_empty\", \"en\")\n }\n\n $WalletStr = Replace($WalletStr, \" \", \"\")\n if Size($WalletStr) < 128 {\n warning LangRes(\"@1key_too_short\", \"en\")\n }\n if Size($WalletStr) > 130 {\n warning LangRes(\"@1key_too_long\", \"en\")\n }\n var key_id_buyer int\n key_id_buyer = PubToID($WalletStr)\n if key_id_buyer == 0 {\n warning LangRes(\"@1public_key_invalid\", \"en\")\n }\n\n $wallet = DBFind(\"ts_wallets\").Where({key_id_buyer: key_id_buyer}).Row()\n }\n\n if !$wallet {\n warning \"Buyer wallet not found\"\n }\n }\n\n action {\n var sale map saleId int\n sale[\"key_id_buyer\"] = $wallet[\"key_id_buyer\"]\n sale[\"currency_type\"] = $CurrencyType\n sale[\"amount_apl\"] = $AmountApl\n sale[\"key_id_sale_apl_admin\"] = $key_id\n sale[\"created_at\"] = $time\n sale[\"buyer_transferred_at\"] = $transferredAt\n sale[\"status\"] = $WAITING_MANAGER\n\n saleId = DBInsert(\"ts_sales\", sale)\n\n // role Apla sales manager notification\n var params map title page string\n title = Sprintf(\"Check sale id %v\", saleId)\n page = \"ts_transfer_manager\"\n params[\"sale_id\"] = saleId\n $roleAplManager = getRoleId(\"role_sale_manager\")\n @1NotificationsSend(\"rid,sender,text_header,page_name,params_map,closure_type,current_role_id\", $roleAplManager, 2, title, page, params, 1, $currentRole)\n }\n}",
0 commit comments