Wiki » История » Версия 2
Olzhas Assetuly, 30.04.2024 14:49
| 1 | 1 | Mariyam Seidaliyeva | {{>TOC}} |
|---|---|---|---|
| 2 | |||
| 3 | [[Основные идеи]] |
||
| 4 | [[Exampls]] |
||
| 5 | [[H2K_Pay]] |
||
| 6 | |||
| 7 | h1. API |
||
| 8 | |||
| 9 | h3. Общие для всех запросов параметры: |
||
| 10 | |||
| 11 | Basic URL: |
||
| 12 | <pre> |
||
| 13 | 2 | Olzhas Assetuly | https://my.safina.pro/ece/ |
| 14 | 1 | Mariyam Seidaliyeva | </pre> |
| 15 | |||
| 16 | Электронная подпись: |
||
| 17 | Предполагается, что подпись формировалась библиотеками, предназначенными для ETH сети которые тело подписываемой транзакции добавляют служебную информацию |
||
| 18 | |||
| 19 | <pre> |
||
| 20 | HEADRES: |
||
| 21 | x-app-ec-from |
||
| 22 | x-app-ec-sign-r |
||
| 23 | x-app-ec-sign-s |
||
| 24 | x-app-ec-sign-v |
||
| 25 | </pre> |
||
| 26 | |||
| 27 | x-app-ec-from : адрес подписавшего (HEX) с префиксом 0x |
||
| 28 | <pre>0xa75db3c448bb62e208e4babf500925427837e464</pre> |
||
| 29 | x-app-ec-sign-r : R компонента подписи (HEX) с префиксом 0x <pre>0xdb07295a5f780159d51c4872a104e6e486428942db38ea3b7d91433c38658c0b</pre> |
||
| 30 | x-app-ec-sign-s : S компонента подписи (HEX) с префиксом 0x <pre>0x3a64d736044d63cff3713b85aa2a2fad902c080c2b64acfcdbee7ce9e20cae0e</pre> |
||
| 31 | x-app-ec-sign-v : V компонента подписи (HEX) с префиксом 0x, флаг восстановления адреса <pre>0x1b</pre> |
||
| 32 | |||
| 33 | Подписываемая строка: |
||
| 34 | <pre> |
||
| 35 | 1. "{}" в случае отсутствия полей формы или запроса GET ({}) |
||
| 36 | 2. json с полями формы в случае запроса POST, PATCH, DELETE |
||
| 37 | </pre> |
||
| 38 | Пример json: |
||
| 39 | <pre> |
||
| 40 | {"slist":{"0":{"type":"all","email":"e@mail.com","ecaddres":"0xa12343c448bb62e208e4babf500925427837e464"},"1":{"type":"any","email":"e@mail.ru","sms":"+77777777777","ecaddres":"0x1234567448bb62e208e4babf500925427837e464"}},"network":"1000","info":"My first wallet"} |
||
| 41 | </pre> |
||
| 42 | Никаких пробелов в структуре JSON не допускается, иначе ОШИБКА ПОДПИСИ. |
||
| 43 | |||
| 44 | В случае ошибки ответ будет: |
||
| 45 | {"ERROR":"Ошибка 12313", "LINE":"125"} |
||
| 46 | |||
| 47 | --- |
||
| 48 | |||
| 49 | h2. Описание методов: |
||
| 50 | |||
| 51 | h3. Получение справочника сетей: |
||
| 52 | |||
| 53 | *Действующие сети:* |
||
| 54 | |||
| 55 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/netlist/1</pre> |
| 56 | 1 | Mariyam Seidaliyeva | |
| 57 | *Отключенные сети:* |
||
| 58 | |||
| 59 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/netlist/0</pre> |
| 60 | 1 | Mariyam Seidaliyeva | |
| 61 | Ответ: |
||
| 62 | <pre> |
||
| 63 | [ |
||
| 64 | {"network_id":1000,"network_name":"Bitcoin (BTC)", |
||
| 65 | "link":"https://www.bitcoin.com", |
||
| 66 | "address_explorer":"https://www.blockchain.com/btc/address/", |
||
| 67 | "tx_explorer":"https://www.blockchain.com/btc/tx/", |
||
| 68 | "block_explorer":"https://www.blockchain.com/btc/block/","info":null,"status":1}, |
||
| 69 | |||
| 70 | {"network_id":1010,"network_name":"Bitcoin Test (BTC)", |
||
| 71 | "link":"https://www.bitcoin.com", |
||
| 72 | "address_explorer":"https://www.blockchain.com/btc-testnet/address/", |
||
| 73 | "tx_explorer":"https://www.blockchain.com/btc-testnet/tx/", |
||
| 74 | "block_explorer":"https://www.blockchain.com/btc-testnet/block/","info":null,"status":1}, |
||
| 75 | |||
| 76 | {"network_id":3000,"network_name":"Etherium (ETH)", |
||
| 77 | "link":"https://ethereum.org", |
||
| 78 | "address_explorer":"https://etherscan.io/address/", |
||
| 79 | "tx_explorer":"https://etherscan.io/tx/", |
||
| 80 | "block_explorer":"https://etherscan.io/block/","info":null,"status":1}, |
||
| 81 | |||
| 82 | {"network_id":3010,"network_name":"ETH Ropsten Test (ETH)", |
||
| 83 | "link":"https://ethereum.org", |
||
| 84 | "address_explorer":"https://ropsten.etherscan.io/address/", |
||
| 85 | "tx_explorer":"https://ropsten.etherscan.io/tx/", |
||
| 86 | "block_explorer":"https://ropsten.etherscan.io/block/","info":null,"status":1}, |
||
| 87 | ... |
||
| 88 | ] |
||
| 89 | </pre> |
||
| 90 | |||
| 91 | --- |
||
| 92 | |||
| 93 | h3. Создание кошелька: |
||
| 94 | |||
| 95 | Запрос: |
||
| 96 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/newWallet</pre> |
| 97 | 1 | Mariyam Seidaliyeva | |
| 98 | Body: |
||
| 99 | |||
| 100 | <pre> |
||
| 101 | { |
||
| 102 | "slist": { |
||
| 103 | "min_signs":"2", |
||
| 104 | "0":{"type":"all", "email":"e@mail.com"}, |
||
| 105 | "1":{"type":"any", "email":"e@mail.ru", "sms":"+77777777777"}, |
||
| 106 | "2":{"type":"all", "ecaddress":"0xa75db3c448bb62e208e4babf500925427837e464"} |
||
| 107 | } |
||
| 108 | "network": "1000", |
||
| 109 | "info": "Мой первый кошелёк" |
||
| 110 | } |
||
| 111 | </pre> |
||
| 112 | Если структуры slist нет, то создастся ОБЫЧНЫЙ ОДНОПОДПИСНОЙ КОШЕЛЁК |
||
| 113 | Структура slist в случае наличия означает что это запрос на МУЛЬТИПОДПИСНОЙ кошелёк. В ней содержатся данные подписантов. |
||
| 114 | type = all значит для совершения транзакции необходимо подтверждение всеми способами, указанными в slist |
||
| 115 | type = any значит для совершения транзакции необходимо подтверждение любым одним способом из указаннымх в slist |
||
| 116 | |||
| 117 | min_signs - необязательный параметр, определяющий какое минимальное количество подписей необходимо чтобы транзакция была подтверждена, значение больше нуля. Если не указан - то подтвердить должны все подписанты. |
||
| 118 | |||
| 119 | Необязательные параметры "email", "sms", "ecaddress", при наличии элемента slist обязательно присутствие одного из них. |
||
| 120 | |||
| 121 | Ответ: |
||
| 122 | <pre>{"myUNID":"BE96CC2F2455C63546258901003B170C"}</pre> |
||
| 123 | |||
| 124 | "myUNID" - уникальное имя заявки на создание кошелька |
||
| 125 | |||
| 126 | --- |
||
| 127 | |||
| 128 | h3. Получение списка кошельков: |
||
| 129 | |||
| 130 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/wallets</pre> |
| 131 | <pre>GET https://my.safina.pro/ec/wallets_2 то же самое, но разделитель у токенов не запятая, а ";"</pre> |
||
| 132 | 1 | Mariyam Seidaliyeva | В ответ придёт JsonArray, каждый элемент которого будет содержать данные о кошельке. Если кошельков нет, то вернётся просто "[]": |
| 133 | |||
| 134 | <pre> |
||
| 135 | [ |
||
| 136 | {"wallet_id":849,"network":5010,"wallet_type":1,"name":"945C6F4C54B3921F4625890300235114","info":"Test Test","addr":"TXuQVGNiu38V5fcxCgawKucnL1MikefHB5","addr_info":null,"myUNID":"C4834FE85AD1B20E4625890300231CC8","tokenShortNames":"TRX,USDT"}, |
||
| 137 | {"wallet_id":857,"network":5010,"wallet_type":1,"name":"786D9289D827EB5046258903002DE1BC","info":"Test Test","addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL","addr_info":null,"myUNID":"F74E34049A12714446258903002DAB04","tokenShortNames":"TRX,USDT"}, |
||
| 138 | {"wallet_id":858,"network":5010,"wallet_type":1,"name":"E256AAB7E8E0B0E646258903002DE217","info":"Test Test","addr":"TTsoaqmR795wPT1ohVYSJFVXinHjwW6ex8","addr_info":null,"myUNID":"3A8FA1DFAC303D0C46258903002DCA23","tokenShortNames":"TRX,USDT"}, |
||
| 139 | {"wallet_id":861,"network":5010,"wallet_type":1,"name":"0F12E99B06DAFF9E46258903002EAAAE","info":"Test Test","addr":"TF1WzAQX2hkWnspEgwqyNaQoa3dqCuNT1Z","addr_info":null,"myUNID":"FB48C991F6A78B9A46258903002E6665","tokenShortNames":"TRX,USDT"}, |
||
| 140 | {"wallet_id":862,"network":5010,"wallet_type":1,"name":"5852554B1764A7A946258903002EAB0F","info":"Test Test","addr":"TY1crvAPB8Z1qpfWTkjjFqZJRztvD9ECoS","addr_info":null,"myUNID":"BB4C9B312887AA4D46258903002E7F6E","tokenShortNames":"TRX,USDT"}, |
||
| 141 | {"wallet_id":863,"network":5010,"wallet_type":1,"name":"C63C1591E72687E1462589030034C9F4","info":"Test Test","addr":"TS5sFz9mo3RS3z2kifw3q2i1ypLbXiCTsQ","addr_info":null,"myUNID":"FF297EC3C1B86300462589030034A4D5","tokenShortNames":"TRX,USDT"}, |
||
| 142 | {"wallet_id":962,"network":5010,"name":"BE96CC2F2455C63546258901003B170C","info":"Test Test Test","addr":""} |
||
| 143 | ] |
||
| 144 | </pre> |
||
| 145 | |||
| 146 | где "wallet_type":1 значит что кошелёк горячий |
||
| 147 | если запись кошелька имеет поле пустое addr = "", то она соответствует заявке на создание кошелька и выводится сокращённым набором полей: |
||
| 148 | <pre> |
||
| 149 | {"wallet_id":962,"network":5010,"name":"BE96CC2F2455C63546258901003B170C","info":"Test Test Test","addr":""} |
||
| 150 | </pre> |
||
| 151 | поле name соответствует уникальному номеру заявки на создание кошелька (myUNID) и после создания кошелька будет изменено на новое. |
||
| 152 | |||
| 153 | --- |
||
| 154 | |||
| 155 | h3. Получение списка всех токенов пользователя: |
||
| 156 | |||
| 157 | Для пользователя, подписавшего запрос отдаются все токены со всех его кошельков. |
||
| 158 | Базовые токены сети с балансом 0 создаются в момент создания кошелька, производные токены появляются после того, как на адрес кошелька поступят эти токены. |
||
| 159 | |||
| 160 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tokens</pre> |
| 161 | 1 | Mariyam Seidaliyeva | |
| 162 | Ответ: |
||
| 163 | <pre>[ |
||
| 164 | { |
||
| 165 | "id" : "357", |
||
| 166 | "wallet_id" : "254", |
||
| 167 | "network" : "3010", |
||
| 168 | "token" : "TRX", |
||
| 169 | "value" : "154,254" |
||
| 170 | "decimals" " "6" |
||
| 171 | "value_hex" : "0x931BAB0" |
||
| 172 | }, |
||
| 173 | { |
||
| 174 | "id" : "371", |
||
| 175 | "wallet_id" : "259", |
||
| 176 | "network" : "3010", |
||
| 177 | "token" : "TRX", |
||
| 178 | "value" : "15,0" |
||
| 179 | "decimals" " "6" |
||
| 180 | "value_hex" : "0xE4E1C0" |
||
| 181 | }, |
||
| 182 | |||
| 183 | ]</pre> |
||
| 184 | |||
| 185 | --- |
||
| 186 | |||
| 187 | h3. Получение справочника токенов: |
||
| 188 | |||
| 189 | Для пользователя, подписавшего запрос отдаётся справочник токенов, поддерживаемых системой. |
||
| 190 | |||
| 191 | "token" = токен, |
||
| 192 | "c" = множитель комиссии (например 0.01 = 1%), |
||
| 193 | "cMin" = минимальная сумма комиссии, |
||
| 194 | "cMax" = максимальная сумма комиссии |
||
| 195 | |||
| 196 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tokensinfo</pre> |
| 197 | 1 | Mariyam Seidaliyeva | |
| 198 | Ответ: |
||
| 199 | <pre>[ |
||
| 200 | {"token":"1000:::BTC","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 201 | {"token":"1010:::BTC","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 202 | {"token":"3000:::ETH","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 203 | {"token":"3010:::ETH","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 204 | {"token":"3030:::ETH","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 205 | {"token":"3040:::ETH","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 206 | {"token":"3000:::USDT","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 207 | {"token":"3010:::USDT","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 208 | {"token":"3030:::USDT","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 209 | {"token":"3040:::USDT","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 210 | {"token":"5000:::TRX","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 211 | {"token":"5010:::TRX","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 212 | {"token":"5000:::USDT","c":"0.01","cMin":"0.001","cMax":"100"}, |
||
| 213 | {"token":"5010:::USDT","c":"0.01","cMin":"0.001","cMax":"100"} |
||
| 214 | ]</pre> |
||
| 215 | |||
| 216 | --- |
||
| 217 | |||
| 218 | h3. Получение параметров и списка адресов кошелька по его имени: |
||
| 219 | |||
| 220 | Для пользователя, подписавшего запрос отдаётся информация по одному кошельку. |
||
| 221 | |||
| 222 | |||
| 223 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/wallet/:name</pre> |
| 224 | 1 | Mariyam Seidaliyeva | |
| 225 | Пример: |
||
| 226 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/wallet/4079BF13E4A8619846258903003556D5</pre> |
| 227 | 1 | Mariyam Seidaliyeva | |
| 228 | Ответ: |
||
| 229 | <pre> |
||
| 230 | |||
| 231 | { |
||
| 232 | "wallet_name":"6E879E7AC87C6B00462589020067E03D", |
||
| 233 | "info":"Test Test", |
||
| 234 | "network":5010, |
||
| 235 | "wallet_type":1, |
||
| 236 | "myFlags":"", |
||
| 237 | "unid":"09283CBBF50094D046258902006722E3", |
||
| 238 | "slist":{ |
||
| 239 | "0":{ |
||
| 240 | "type":"all", |
||
| 241 | "ecaddress":"0xa15db3c448bb62e208e4ba12500925427837e464", |
||
| 242 | "email":"treests@oris.space", |
||
| 243 | "sms":"+77777777777" |
||
| 244 | } |
||
| 245 | }, |
||
| 246 | "addrs":"TEdxjMESmmgREyqXbqBeHq5PRqNoW3MnvF,T01xjMESmmgRE78XbqBeHq5PRqNoW387vA" |
||
| 247 | } |
||
| 248 | |||
| 249 | </pre> |
||
| 250 | |||
| 251 | |||
| 252 | |||
| 253 | --- |
||
| 254 | |||
| 255 | h3. Получение параметров и списка адресов кошелька по его уникальному идентификатору заявки на создания (UNID) : |
||
| 256 | |||
| 257 | Для пользователя, подписавшего запрос отдаётся информация по одному кошельку. |
||
| 258 | |||
| 259 | |||
| 260 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/walletbyunid/:unid</pre> |
| 261 | 1 | Mariyam Seidaliyeva | |
| 262 | Пример: |
||
| 263 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/walletbyunid/5049BF13E4A8619846849903A03556D5</pre> |
| 264 | 1 | Mariyam Seidaliyeva | |
| 265 | Ответ: |
||
| 266 | <pre> |
||
| 267 | |||
| 268 | { |
||
| 269 | "wallet_name":"6E879E7AC87C6B00462589020067E03D", |
||
| 270 | "info":"Test Test", |
||
| 271 | "network":5010, |
||
| 272 | "wallet_type":1, |
||
| 273 | "myFlags":"", |
||
| 274 | "unid":"09283CBBF50094D046258902006722E3", |
||
| 275 | "slist":{ |
||
| 276 | "0":{ |
||
| 277 | "type":"all", |
||
| 278 | "ecaddress":"0xa15db3c448bb62e208e4ba12500925427837e464", |
||
| 279 | "email":"treests@oris.space", |
||
| 280 | "sms":"+77777777777" |
||
| 281 | } |
||
| 282 | }, |
||
| 283 | "addrs":"TEdxjMESmmgREyqXbqBeHq5PRqNoW3MnvF,T01xjMESmmgRE78XbqBeHq5PRqNoW387vA" |
||
| 284 | } |
||
| 285 | |||
| 286 | </pre> |
||
| 287 | |||
| 288 | |||
| 289 | |||
| 290 | --- |
||
| 291 | |||
| 292 | h3. Получение списка токенов пользователя с одного кошелька: |
||
| 293 | |||
| 294 | Для пользователя, подписавшего запрос отдаются токены со одного кошелька. |
||
| 295 | |||
| 296 | |||
| 297 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/wallet_tokens/:name</pre> |
| 298 | 1 | Mariyam Seidaliyeva | |
| 299 | Пример: |
||
| 300 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/wallet_tokens/4079BF13E4A8619846258903003556D5</pre> |
| 301 | 1 | Mariyam Seidaliyeva | |
| 302 | Ответ: |
||
| 303 | <pre>[ |
||
| 304 | { |
||
| 305 | "id" : "357", |
||
| 306 | "wallet_id" : "254", |
||
| 307 | "network" : "3010", |
||
| 308 | "token" : "TRX", |
||
| 309 | "value" : "154,254" |
||
| 310 | "decimals" " "6" |
||
| 311 | "value_hex" : "0x931BAB0" |
||
| 312 | }, |
||
| 313 | { |
||
| 314 | "id" : "371", |
||
| 315 | "wallet_id" : "259", |
||
| 316 | "network" : "3010", |
||
| 317 | "token" : "TRX", |
||
| 318 | "value" : "15,0" |
||
| 319 | "decimals" " "6" |
||
| 320 | "value_hex" : "0xE4E1C0" |
||
| 321 | }, |
||
| 322 | |||
| 323 | ]</pre> |
||
| 324 | |||
| 325 | --- |
||
| 326 | |||
| 327 | h3. Отправка транзакции |
||
| 328 | |||
| 329 | TODO: добавить ключ "instant":"". Если он есть, то транзакция не требует подтверждения пользователя после сбора подписей. |
||
| 330 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/tx</pre> |
| 331 | 1 | Mariyam Seidaliyeva | |
| 332 | <pre> |
||
| 333 | { |
||
| 334 | "token":"5010:::TRX###945C6F4C54B3921F4625890300235114", |
||
| 335 | "info":"Test Test", |
||
| 336 | "value":"1,01", |
||
| 337 | "toAddress":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 338 | "json_info":{"order_id":"125478"} |
||
| 339 | } |
||
| 340 | </pre> |
||
| 341 | |||
| 342 | "value" - разделитель дробной части всегда запятая |
||
| 343 | |||
| 344 | Ответ: |
||
| 345 | <pre>{"tx_unid":"FA581EE3B5899573462589030071DF52"}</pre> |
||
| 346 | |||
| 347 | --- |
||
| 348 | |||
| 349 | h3. Получение списка транзакций: |
||
| 350 | |||
| 351 | Для пользователя, подписавшего запрос отдаются все исходящие транзакции со всех его кошельков, инициированные в нашей системе. Внешние транзакции не отображаются |
||
| 352 | |||
| 353 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx</pre> |
| 354 | 1 | Mariyam Seidaliyeva | |
| 355 | Ответ: |
||
| 356 | <pre>[ |
||
| 357 | { |
||
| 358 | "id":470, |
||
| 359 | "tx":null, |
||
| 360 | "token":"5010:::TRX###9C51E0B331882BCF46258913005338CB", |
||
| 361 | "token_name":"TRX", |
||
| 362 | "to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 363 | "value":"1,005","value_hex":"0", |
||
| 364 | "unid":"2E19FB324B3867C146258915006AC7F0", |
||
| 365 | "init_ts":1670786865, |
||
| 366 | "min_sign":null, |
||
| 367 | "wait":[{"ecaddress":"0xA285990a1Ce696d770d578Cf4473d80e0228DF95"}], |
||
| 368 | "signed":null |
||
| 369 | }, |
||
| 370 | { |
||
| 371 | "id":469, |
||
| 372 | "tx":null, |
||
| 373 | "token":"5010:::TRX###9C51E0B331882BCF46258913005338CB", |
||
| 374 | "token_name":"TRX", |
||
| 375 | "to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 376 | "value":"1,005","value_hex":"0", |
||
| 377 | "unid":"C9D0C61AD75DF26F4625891500402B26", |
||
| 378 | "init_ts":1670758938, |
||
| 379 | "min_sign":null, |
||
| 380 | "wait":[{}], |
||
| 381 | "signed":[ |
||
| 382 | {"ecaddress":"0xA285990a1Ce696d770d578Cf4473d80e0228DF95", |
||
| 383 | "ecsign":"0xb1cb0ac4a67df3dbe4a018bb2f398d98024ca0be12c5c137f980814f8eaf339d0x0ac527b42e5510646b9f8d4254913ba0c000d454bb2ebbc145cf731d037744950x1c" |
||
| 384 | } |
||
| 385 | ] |
||
| 386 | }, |
||
| 387 | { |
||
| 388 | "id":468, |
||
| 389 | "tx":null, |
||
| 390 | "token":"5010:::TRX###9C51E0B331882BCF46258913005338CB", |
||
| 391 | "token_name":"TRX", |
||
| 392 | "to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 393 | "value":"1,005","value_hex":"0", |
||
| 394 | "unid":"D09BBF3B2A77A1B746258915003FB2EC", |
||
| 395 | "init_ts":1670758630, |
||
| 396 | "min_sign":null, |
||
| 397 | "wait":null, |
||
| 398 | "signed":null |
||
| 399 | } |
||
| 400 | ]</pre> |
||
| 401 | |||
| 402 | "tx" - хэш транзакции, заполняется только если транзакция уже размещена в сети, до этого передаётся null |
||
| 403 | |||
| 404 | --- |
||
| 405 | |||
| 406 | h3. Получение списка транзакций определённого токена: |
||
| 407 | |||
| 408 | Для пользователя, подписавшего запрос отдаются все исходящие транзакции определённого токена по всем кошелькам, инициированные в нашей системе. Внешние транзакции не отображаются |
||
| 409 | |||
| 410 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx/:token</pre> |
| 411 | 1 | Mariyam Seidaliyeva | |
| 412 | <pre> |
||
| 413 | 2 | Olzhas Assetuly | GET https://my.safina.pro/ece/tx/5040:::ETH |
| 414 | 1 | Mariyam Seidaliyeva | </pre> |
| 415 | |||
| 416 | Ответ: |
||
| 417 | <pre>[ |
||
| 418 | { |
||
| 419 | "id":470, |
||
| 420 | "tx":null, |
||
| 421 | "to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 422 | "value":"1,005", |
||
| 423 | "value_hex":"0", |
||
| 424 | "unid":"2E19FB324B3867C146258915006AC7F0", |
||
| 425 | "init_ts":1670786865 |
||
| 426 | }, |
||
| 427 | { |
||
| 428 | "id":469, |
||
| 429 | "tx":null, |
||
| 430 | "to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL", |
||
| 431 | "value":"1,005", |
||
| 432 | "value_hex":"0", |
||
| 433 | "unid":"C9D0C61AD75DF26F4625891500402B26", |
||
| 434 | "init_ts":1670758938 |
||
| 435 | } |
||
| 436 | ]</pre> |
||
| 437 | |||
| 438 | "tx" - хэш транзакции, заполняется только если транзакция уже размещена в сети, до этого передаётся null |
||
| 439 | |||
| 440 | --- |
||
| 441 | |||
| 442 | h3. Получение списка ожидаемых подписей для транзакции |
||
| 443 | |||
| 444 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign_wait/:tx_unid</pre> |
| 445 | 1 | Mariyam Seidaliyeva | |
| 446 | Пример |
||
| 447 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign_wait/AD9EAFA6DADCC3BE4625890E007795B3</pre> |
| 448 | 1 | Mariyam Seidaliyeva | |
| 449 | Ответ |
||
| 450 | <pre>[{"ecaddress":"0x534dfB93c5e19974C16c380e9B822CD80Cc3a825"},{"ecaddress":"0x534dfB93c5e19974C16c380e9B822CD80Cc3a825"}]</pre> |
||
| 451 | |||
| 452 | --- |
||
| 453 | |||
| 454 | h3. Получение списка полученных подписей для транзакции |
||
| 455 | |||
| 456 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign_signed/:tx_unid</pre> |
| 457 | 1 | Mariyam Seidaliyeva | |
| 458 | Пример |
||
| 459 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign_signed/AD9EAFA6DADCC3BE4625890E007795B3</pre> |
| 460 | 1 | Mariyam Seidaliyeva | |
| 461 | Ответ |
||
| 462 | <pre>[{"ecaddress":"0x534dfB93c5e19974C16c380e9B822CD80Cc3a825"},{}]</pre> |
||
| 463 | |||
| 464 | --- |
||
| 465 | |||
| 466 | h3. Получение списка полученных и ожидаемых подписей для транзакции |
||
| 467 | |||
| 468 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign/:tx_unid</pre> |
| 469 | 1 | Mariyam Seidaliyeva | |
| 470 | Пример |
||
| 471 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign/AD9EAFA6DADCC3BE4625890E007795B3</pre> |
| 472 | 1 | Mariyam Seidaliyeva | |
| 473 | Ответ |
||
| 474 | <pre>[{"signed":{"ecaddress":"0x534dfB93c5e19974C16c380e9B822CD80Cc3a825"}},{"wait":{"ecaddress":"0x534dfB93c5e19974C16c380e9B822CD80Cc3a825"}}]</pre> |
||
| 475 | |||
| 476 | --- |
||
| 477 | |||
| 478 | h3. Получение массива tx_unid (транзакций) |
||
| 479 | |||
| 480 | Запрос возвращает массив информации по транзакций которые должен утвердить (подписать) отправивший запрос пользователь (владелец ECAddress подписи запроса) |
||
| 481 | |||
| 482 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_by_ec</pre> |
| 483 | 1 | Mariyam Seidaliyeva | |
| 484 | Ответ: |
||
| 485 | <pre>[{"token":"5010:::TRX###6F8B336576989FA246258909002D76E3","to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL","tx_value":"1,105","init_ts":1670190446,"unid":"AD9EAFA6DADCC3BE4625890E007795B3"}]</pre> |
||
| 486 | |||
| 487 | --- |
||
| 488 | |||
| 489 | h3. Подписание транзакции |
||
| 490 | |||
| 491 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/tx_sign/:tx_unid</pre> |
| 492 | 1 | Mariyam Seidaliyeva | |
| 493 | Пример |
||
| 494 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/tx_sign/AD9EAFA6DADCC3BE4625890E007795B3</pre> |
| 495 | 1 | Mariyam Seidaliyeva | |
| 496 | Ответ |
||
| 497 | <pre>{}</pre> |
||
| 498 | |||
| 499 | --- |
||
| 500 | |||
| 501 | h3. Отклонение транзакции |
||
| 502 | |||
| 503 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/tx_reject/:tx_unid</pre> |
| 504 | 1 | Mariyam Seidaliyeva | |
| 505 | Пример |
||
| 506 | 2 | Olzhas Assetuly | <pre>POST https://my.safina.pro/ece/tx_reject/AD9EAFA6DADCC3BE4625890E007795B3</pre> |
| 507 | 1 | Mariyam Seidaliyeva | { |
| 508 | "ec_reject":"Это текст причины отклонения транзакции", |
||
| 509 | } |
||
| 510 | |||
| 511 | |||
| 512 | Ответ |
||
| 513 | <pre>{}</pre> |
||
| 514 | |||
| 515 | --- |
||
| 516 | |||
| 517 | h3. Получение массива токенов пользователя и общего баланса по ним |
||
| 518 | |||
| 519 | Запрос возвращает массив с информацией о всех токенах пользователя и общий баланс по ним |
||
| 520 | Базовые токены возвращаются даже если баланс 0, производные только те, по которым были изменения баланса. |
||
| 521 | |||
| 522 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/user_tokens/</pre> |
| 523 | 1 | Mariyam Seidaliyeva | |
| 524 | Ответ: |
||
| 525 | <pre> |
||
| 526 | [ |
||
| 527 | {"network_name":"Tron Nile TestNet (TRX)","token":"TRX","value":100}, |
||
| 528 | {"network_name":"Tron Nile TestNet (TRX)","token":"USDT","value":10} |
||
| 529 | ] |
||
| 530 | |||
| 531 | </pre> |
||
| 532 | |||
| 533 | --- |
||
| 534 | |||
| 535 | h3. Получение последних 50-ти транзакций, которые подписал пользователь |
||
| 536 | |||
| 537 | Запрос возвращает массив с информацией о 50ти последних транзакциях, которые подписывал пользователь. |
||
| 538 | |||
| 539 | 2 | Olzhas Assetuly | <pre>GET https://my.safina.pro/ece/tx_sign_signed/</pre> |
| 540 | 1 | Mariyam Seidaliyeva | |
| 541 | Ответ: |
||
| 542 | <pre> |
||
| 543 | [ |
||
| 544 | {"to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL","tx_value":"1,005","tx":null,"init_ts":1670758938,"info":null,"token":"5010:::TRX"}, |
||
| 545 | {"to_addr":"TRx6xXChS5sXz3mpvLSNfKuL6w3PBdMZzL","tx_value":"1,005","tx":null,"init_ts":1670758133,"info":null,"token":"5010:::TRX"} |
||
| 546 | ] |
||
| 547 | |||
| 548 | |||
| 549 | </pre> |
||
| 550 | |||
| 551 | h3. Примеры |
||
| 552 | |||
| 553 | [[Exampls|Примеры]] |