{"id":19622508,"url":"https://github.com/zouwei/digist","last_synced_at":"2026-01-25T15:02:50.622Z","repository":{"id":91618996,"uuid":"160755452","full_name":"zouwei/DigiST","owner":"zouwei","description":"DigiST，基于web3.js数字钱包，区块链助力全球权益投资","archived":false,"fork":false,"pushed_at":"2024-09-11T17:19:22.000Z","size":222,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-23T21:48:19.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zouwei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-07T01:43:35.000Z","updated_at":"2022-10-03T19:06:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"c07ed545-11e3-4b9a-acdc-f7cd585fd0de","html_url":"https://github.com/zouwei/DigiST","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zouwei/DigiST","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zouwei%2FDigiST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zouwei%2FDigiST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zouwei%2FDigiST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zouwei%2FDigiST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zouwei","download_url":"https://codeload.github.com/zouwei/DigiST/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zouwei%2FDigiST/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28754807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T13:59:49.818Z","status":"ssl_error","status_checked_at":"2026-01-25T13:59:33.728Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T11:28:06.805Z","updated_at":"2026-01-25T15:02:50.599Z","avatar_url":"https://github.com/zouwei.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DigiST\n\n\u003e 采用前后端分离结构，来开发DigiST程序，此项目为DigiST服务端程序。\n\u003e\n\u003e 方面起见，常用的信息都在此文档中进行描述，包含且不限于项目描述、项目接口文档，项目规范等\n\n\n\n| 版本编号 | 版本日期   | 修改者 | 说明                             |\n| -------- | ---------- | ------ | -------------------------------- |\n| v0.0.8   | 2019-01-19 | 胡邹   | 接口补充、数据字典               |\n| v0.0.7   | 2019-01-16 | 胡邹   | 基础版本定稿，关键流程接口已覆盖 |\n| v0.0.6   | 2019-01-14 | 胡邹   | 新增智能合约相关接口             |\n| v0.0.5   | 2019-01-12 | 胡邹   | 新增转账接口                     |\n| v0.0.4   | 2019-01-10 | 胡邹   | 增加了钱包接口                   |\n| v0.0.3   | 2019-01-09 | 胡邹   | 新增部分钱包接口和接口规范定义   |\n| v0.0.2   | 2019-01-07 | 胡邹   | 募资接口文档更新                 |\n| v0.0.1   | 2018-12-24 | 胡邹   | 用户相关的接口描述               |\n\n\n\n## 1.项目结构描述\n\n~~~\n\nbin:程序启动项，为了服务器进程管理，改成与服务相同的名称（相当于app.js）\ncommon：此目录放置通用的js helper文件\nconfig：配置文件\ndoc：开发文档以及程序相关的设计文档统一放到这个doc目录下，README.md可以做软链接，如有有需要的话。\nhandlers:程序处理层，路由方法实现层，桥接底层services业务逻辑处理层。\nmodels：ORM关系对象模型，映射数据表对象，封装常规的CRUD业务\nmodelsservices：扩展models的方法，抽象出更加通用的底层业务方法，缓存可以封装在这一层来实现，当然也可以用另外的形式来体现，根据业务需要来编排。\nservices：业务逻辑层，业务逻辑代码写在这一层。\n\n~~~\n\n\n## 2.项目启动\n\n~~~\n\n1.配置文件配置，需要连接到数据库\n2.安装依赖包文件，npm i\n3.启动程序，bin\\digist.js\n4.检查是否启动正常\n\n~~~\n\n\n\n\n\n##3.项目接口\n\n项目接口遵循一些基本的规则，在使用的过程中，这些基本的规则是全局通用的，例如：host指定为接口访问的域名（包含端口号）。\n\n本项目为例，本地开发环境的host则为：http://localhost:9980，接口API的路由组成完整的API地址：http://localhost:9980/ws_service/user/getCaptcha\n\n测试环境host：\n\n在实际的测试环境中或者生产环境中只需要替换api的域名部分即可。\n\n**返回参数code值定义**\n\n| 返回参数值 | 说明                                                    |\n| ---------- | ------------------------------------------------------- |\n| 0          | 表示请求成功                                            |\n| 1          | 表示失败，大于0的都非正常状态，不同的值根据业务单独定义 |\n\n###3.1用户API\n\n\n\n####3.1.1获取图形码\n\n页面图形验证码，主要作用是防止对一些付费接口的流量攻击，发送短信是有成本的，通过引入图形验证码能在一定程度上预防这种流量攻击。\n\n| 名称   | 值                          |\n| ------ | --------------------------- |\n| API    | `ws_digist/user/getCaptcha` |\n| METHOD | get                         |\n\n图形验证码接口是一个GET接口，在前端HTML中的img标签直接指向src即可。\n\n~~~js\n// 入参\n// 前端缓存需要注意，切换图形验证码的时候，可以在url末尾带一个时间戳\n// 例如：/ws_service/user/getCaptcha?ts=14500039390009\n~~~\n\n\n\n####3.1.2发送短信验证码\n\n发送短信验证码，发送短信验证码接口已经一个通用的接口，在多种需要使用短信验证码的场景中使用这一个接口。\n\n| 名称   | 值                                    |\n| ------ | ------------------------------------- |\n| API    | `ws_digist/user/sendVerificationCode` |\n| METHOD | POST                                  |\n\n**入参**\n\n~~~js\n// 入参\n{\n    \"mobile\":\"18888888888\",\t\t// 手机号码\n    \"graphVerifyCode\":\"1234\",\t// 图形验证码，如果用图形验证码，必传\n    \"verifyUser\":true\t\t\t// 【可选参数】验证用户：ture表示用户存在才发送短信，false表示用户不存在再发送短信；参数不存在则表示不验证用户\n}\n      \n~~~\n\n**出参**\n\n~~~js\n\n~~~\n\n\n\n####3.1.3用户注册\n\n新用户注册\n\n| 名称   | 值                            |\n| ------ | ----------------------------- |\n| API    | `ws_digist/user/userRegister` |\n| METHOD | POST                          |\n\n**入参**\n\n```js\n{\n    \"mobile\":\"18888888888\",\t\t\t\t// 手机号码\n    \"password\":\"abc0123456789\",\t\t\t// 登录密码\n    \"verifyCode\":\"1234\"\t\t\t\t\t// 手机验证码\n}\n```\n\n**出参**\n\n```js\n// 出参如果没有需要字段，可以协商增加\n{\n    \"user_id\":\"4944010064586BF5205C0000\",\n    \"name\":\"188****8888\",\n    \"created_time\":\"2018-12-24T15:04:10.892Z\"\n}\n```\n\n\n\n####3.1.4找回密码\n\n根据手机号码找回密码\n\n| 名称   | 值                                |\n| ------ | --------------------------------- |\n| API    | `ws_digist/user/retrievePassword` |\n| METHOD | POST                              |\n\n**入参**\n\n```js\n{\n    \"mobile\":\"18888888888\",\t\t\t\t// 手机号码\n    \"password\":\"abc0123456789\",\t\t\t// 登录密码\n    \"verifyCode\":\"1234\"\t\t\t\t\t// 手机验证码\n}\n```\n\n**出参**\n\n```js\n// 出参如果没有需要字段，可以协商增加\n{\n    \"code\":\"0\",\n    \"msg\":\"请求成功\",\n    \"module\":\"DigiST\",\n    \"result\":{\n        \"user_id\":\"49440100583A36F61E5C0000\",\n        \"name\":\"188****8888\",\n        \"mobile\":\"78888888888\"\n    }\n}\n```\n\n\n\n####3.1.5用户登录\n\n用户登录，根据手机号码登录，暂时没开发邮箱登录，其他登录方式使用同一个API，传入不同的值即可。\n\n| 名称   | 值                         |\n| ------ | -------------------------- |\n| API    | `ws_digist/user/userLogin` |\n| METHOD | POST                       |\n\n**入参**\n\n```js\n{\n    \"mobile\":\"18888888888\",\t\t\t\t// 手机号码\n    \"password\":\"abc0123456789\"   \t\t// 登录密码\n}\n```\n\n**出参**\n\n```js\n{\n    \"user_id\":\"49440100583A36F61E5C0000\",\t// 用户id，绝对唯一\n    \"name\":\"188****8888\",\t\t\t\t\t// 用户姓名（不唯一，显示使用）\n    \"mobile\":\"78888888888\",\t\t\t\t\t// 手机号码（登录账户之一，唯一）\n    \"isSetPassword\":true,\t\t\t// 是否设置了登录密码，false表示未设置\n    \"isSetPayPassword\":true\t\t\t// 是否设置了支付密码，false表示未设置\n}\n```\n\n\n\n####3.1.6修改登录密码\n\n首次登录密码设置可以不同输入旧密码，前端表现只需要个密码框即可，这个状态判断根据登录返回的结果值进行判断。\n\n如果是已经设置过了登录密码，则需要输入旧密码验证通过之后才能修改成功。\n\n| 名称   | 值                              |\n| ------ | ------------------------------- |\n| API    | `ws_digist/user/changePassword` |\n| METHOD | POST                            |\n\n**入参**\n\n```js\n{\n    \"user_id\":\"\",                   \t// 用户id\n    \"old_password\":\"abc0123456789\",     // 旧密码，首次设置登录密码，不传参\n    \"new_password\":\"abc0123456789\"      // 新密码\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\":\"0\",\n    \"msg\":\"请求成功\",\n    \"module\":\"DigiST\",\n    \"result\":{\n        \"user_id\":\"49440100583A36F61E5C0000\",// 用户id，绝对唯一\n        \"name\":\"188****8888\",// 用户姓名（不唯一，显示使用）\n        \"mobile\":\"78888888888\",// 手机号码（登录账户之一，唯一）\n        \"isSetPassword\":true,// 是否设置了登录密码，false表示未设置\n        \"isSetPayPassword\":true// 是否设置了支付密码，false表示未设置\n    }\n}\n```\n\n\n\n####3.1.7修改支付密码\n\n首次支付密码设置可以不同输入旧密码，前端表现只需要个密码框即可，这个状态判断根据登录返回的结果值进行判断。\n\n如果是已经设置过了支付密码，则需要输入旧密码验证通过之后才能修改成功。\n\n| 名称   | 值                                 |\n| ------ | ---------------------------------- |\n| API    | `ws_digist/user/changePayPassword` |\n| METHOD | POST                               |\n\n**入参**\n\n```js\n{\n    \"user_id\":\"\",                   \t\t// 用户id\n    \"old_pay_password\":\"abc0123456789\",     // 旧密码，首次设置支付密码，不传参\n    \"new_pay_password\":\"abc0123456789\"      // 新密码\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\":\"0\",\n    \"msg\":\"请求成功\",\n    \"module\":\"DigiST\",\n    \"result\":{\n        \"user_id\":\"49440100583A36F61E5C0000\",// 用户id，绝对唯一\n        \"name\":\"188****8888\",// 用户姓名（不唯一，显示使用）\n        \"mobile\":\"78888888888\",// 手机号码（登录账户之一，唯一）\n        \"isSetPassword\":true,// 是否设置了登录密码，false表示未设置\n        \"isSetPayPassword\":true// 是否设置了支付密码，false表示未设置\n    }\n}\n```\n\n\n\n### 3.2钱包API\n\n#### 3.2.1 查询用户钱包\n\n进入钱包首页之后，首先查询用户钱包信息，如果没有\n\n| 名称   | 值                 |\n| ------ | ------------------ |\n| API    | `ws_service/user/` |\n| METHOD | POST               |\n\n**入参**\n\n```js\n{\n\t\"user_id\":\"49440100583A36F61E5C0000\"\n}\n```\n\n**出参**\n\n```js\n// 用户钱包未创建的情况下返回\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": null\t\t\t\t// 钱包信息为null表示未创建钱包，接下来进行创建或者导入钱包流程\n}\n\n// 如果用户钱包存在的情况下返回\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100D072CF0E365C0000\",\n        \"address\": \"0x8D327aFFcB78F4632056Dfe37c9CC0bff6e7f30F\"\n\t\t// 钱包的余额或者其他代币余额查询可以考虑用额外的接口来实现\n    }\n}\n```\n\n\n\n#### 3.2.2 创建用户钱包\n\n先查询用户钱包，如果钱包不存在，可以创建钱包或者导入钱包\n\n| 名称   | 值                                 |\n| ------ | ---------------------------------- |\n| API    | `ws_service/user/createUserWallet` |\n| METHOD | POST                               |\n\n**入参**\n\n```js\n{\n\t\"user_id\":\"49440100583A36F61E5C0000\"\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100EC2BA504375C0000\",\n        \"address\": \"0xAB79E60d600e1746D0a4e82d3E4ad7B952309f06\",\n        \"mnemonic\": \"spray trash daring critic give armor baby scale move head frown kingdom\"\n    }\n}\n```\n\n\n\n\n\n#### 3.2.3 查询以太币余额\n\n查询用户钱包（包含TOKEN代币）账户余额，根据3.2.1查询到用户钱包address的情况，再查询此接口，可以采用一定策略及时的更新用户的钱包余额情况，例如在tab卡片切换到钱包的时候执行查询，或者定时查询，或者投资项目之后执行查询。\n\n**暂时空缺，细节有待明确下**\n\n| 名称   | 值                                     |\n| ------ | -------------------------------------- |\n| API    | `ws_service/user/getUserWalletBalance` |\n| METHOD | POST                                   |\n\n**入参**\n\n```js\n/**\n * 查询用户余额\n * @param {JSON} args \n * {\n *      \"user_id\":\"\",      // 用户id\n *      \"address\":\"\",      // 地址\n *      \"defaultBlock\":\"\", // (可选)如果传递此值，则不会使用web3.eth.defaultBlock设置默认快\n *      \"unit\":\"\"          // (可选)余额单位：默认ether\n * }\n */\n{ \n\t\"user_id\":\"4449010040510C20375C0000\",\n\t\"address\": \"0x6d7d4a3c274813A00a4e34B842582021733f1a6C\" ,\n\t\"unit\":\"ether\"\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": \"0\"\n}\n```\n\n\n\n#### 3.2.4 查询到代币余额\n\n\n\n| 名称   | 值                               |\n| ------ | -------------------------------- |\n| API    | `ws_digist/user/getTokenBalance` |\n| METHOD | POST                             |\n\n**入参**\n\n```js\n{\n    \"user_id\":\"44490100782A0F0C365C0000\", // 用户id\n    \"contract_address\":\"0xA49D6ac4aDEAEfA6a951A3c91d75B80A03cA4ddc\",// 合约地址\n    \"fromaddress\":\"0xa78928eAc28219C7d1B1563E9568AdA8BfC7677d\"// 查询账户地址\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": \"1.3\"\t\t// 已换算，1:1TRUE\n}\n```\n\n\n\n#### 3.2.5 根据助记词导入钱包\n\n\n\n| 名称   | 值                                       |\n| ------ | ---------------------------------------- |\n| API    | `ws_service/user/importWalletByMnemonic` |\n| METHOD | POST                                     |\n\n**入参**\n\n```js\n{\n\t\"user_id\":\"49440100583A36F61E5C0000\",\n\t\"mnemonic\":\"farm usual marble endorse voice tobacco weird swear color fall search jar\"\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100EC2B2B06375C0000\",\n        \"address\": \"0xEa39b7f1d486E766ffC1fd5A1AAAa74e47065DA1\"\n    }\n}\n```\n\n\n\n#### 3.2.6 根据keystore+密码导入钱包\n\n貌似还有点问题\n\n| 名称   | 值                                       |\n| ------ | ---------------------------------------- |\n| API    | `ws_service/user/importWalletByKeystore` |\n| METHOD | POST                                     |\n\n**入参**\n\n```js\n{\n    \"user_id\":\"49440100583A36F61E5C0000\",\n    \"password\":\"12345678\",\n    \"keystore\":{\n        \"version\":3,\n        \"id\":\"f654d9b2-64da-4dfc-b755-eee214462c0c\",\n        \"address\":\"4cceba2d7d2b4fdce4304d3e09a1fea9fbeb1528\",\n        \"crypto\":{\n            \"ciphertext\":\"\",\n            \"cipherparams\":{\n                \"iv\":\"4fb64c6ae444a64be98ae64875122c45\"\n            },\n            \"cipher\":\"aes-128-ctr\",\n            \"kdf\":\"scrypt\",\n            \"kdfparams\":{\n                \"dklen\":32,\n                \"salt\":\"39ef475153377ec3ebde90478a31ca2483ddc7aab02807897a6fb4555d6d5b5d\",\n                \"n\":8192,\n                \"r\":8,\n                \"p\":1\n            },\n            \"mac\":\"03b2d19cca1e7db19bd1050e48686df09052686a80712ad791e25b0e7adb808a\"\n        }\n    }\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100EC2B2B06375C0000\",\n        \"address\": \"0xEa39b7f1d486E766ffC1fd5A1AAAa74e47065DA1\"\n    }\n}\n```\n\n\n\n\n\n\n\n#### 3.2.7 导出keystore\n\n导出keystore（需要根据支付密码设置）\n\n| 名称   | 值                                     |\n| ------ | -------------------------------------- |\n| API    | `ws_service/user/exportWalletKeystore` |\n| METHOD | POST                                   |\n\n**入参**\n\n```js\n{\n\t\"user_id\":\"49440100583A36F61E5C0000\",\t\t\t\t\t// 用户id\n\t\"pay_password\":\"12345678\",\t\t\t\t\t\t\t\t// 支付密码\n\t\"address\":\"0xEa39b7f1d486E766ffC1fd5A1AAAa74e47065DA1\"\t// 钱包地址\n}\n```\n\n**出参**\n\n```js\n// result返回的就是keystoreJsonV3结构文件\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"version\": 3,\n        \"id\": \"f654d9b2-64da-4dfc-b755-eee214462c0c\",\n        \"address\": \"4cceba2d7d2b4fdce4304d3e09a1fea9fbeb1528\",\n        \"crypto\": {\n            \"ciphertext\": \"\",\n            \"cipherparams\": {\n                \"iv\": \"4fb64c6ae444a64be98ae64875122c45\"\n            },\n            \"cipher\": \"aes-128-ctr\",\n            \"kdf\": \"scrypt\",\n            \"kdfparams\": {\n                \"dklen\": 32,\n                \"salt\": \"39ef475153377ec3ebde90478a31ca2483ddc7aab02807897a6fb4555d6d5b5d\",\n                \"n\": 8192,\n                \"r\": 8,\n                \"p\": 1\n            },\n            \"mac\": \"03b2d19cca1e7db19bd1050e48686df09052686a80712ad791e25b0e7adb808a\"\n        }\n    }\n}\n\n```\n\n\n\n#### 3.2.8 转账（以太币转账）\n\n转账分几种情况，以太币转账（如TRUE币转账），此外还有一种智能合约代币（TOKEN）转账，此接口是用来代币转账的接口\n\n| 名称   | 值                                      |\n| ------ | --------------------------------------- |\n| API    | `ws_service/user/sendSignedTransaction` |\n| METHOD | POST                                    |\n\n**入参**\n\n```js\n// 以太币转账\n{\n    \"user_id\":\"4449010040510C20375C0000\",\t\n    \"fromaddress\":\"0x25090d091a19CAbD722F508776ffc2c44119C24B\",\n    \"toaddress\": \"0xa78928eAc28219C7d1B1563E9568AdA8BfC7677d\",  \n    \"number\": \"1\" \n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100300B61593B5C0000\",\n        \"transaction_hash\": \"0x1a2ec75c6f23e82698eee06aaafd8c69067b0a66138a28d933753f667cc41cc3\"\n    }\n}\n```\n\n\n\n#### 3.2.9 代币买入（合约转账）\n\ntoken代币转账接口和以太币转账接口区分开来，步骤有很大的相似性，在查询交易记录的时候，可以通过区分合约地址来区分是以太币还是代币的转账记录。\n\n| 名称   | 值                                            |\n| ------ | --------------------------------------------- |\n| API    | `ws_digist/user/sendSignedTransactionByToken` |\n| METHOD | POST                                          |\n\n**入参**\n\n```js\n// token代币转账\n{\n    \"user_id\":\"4449010040510C20375C0000\",\t\t\t\t// 用户id\n    \"contract_address\":\"0x5821feC54CE3081F61ca863fb57C0602047EaE8c\",\t// 合约地址\n    \"fromaddress\":\"0x25090d091a19CAbD722F508776ffc2c44119C24B\",\t // 转账人（购买人）\n    \"number\": \"1\" \t\t\t// 代币数量\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100300B61593B5C0000\",\n        \"transaction_hash\": \"0x1a2ec75c6f23e82698eee06aaafd8c69067b0a66138a28d933753f667cc41cc3\"\n    }\n}\n```\n\n\n\n\n\n\n\n#### 3.2.10 查询转账交易列表\n\n查询用户的交易记录列表，包含以太币转账记录，token代币转账记录都在这一个表里面。contract_address是合约地址，如果为空表示代币转账。\n\n以太币转账与智能合约代币转账的记录在一个数据表，通过不同的查询条件模型来判断。\n\n| 名称   | 值                                |\n| ------ | --------------------------------- |\n| API    | `ws_digist/user/getUserTradeList` |\n| METHOD | POST                              |\n\n**入参**\n\n```js\n// 查询某个用户的全部转账记录（以太币和代币）\n{\n    \"pageSize\":10,\t\t// 分页数据大小，每页数据记录数\n    \"pageIndex\":1,\t\t// 页索引\n    \"where\":{\n\t\t\"user_id\":\"4449010040510C20375C0000\"\n    }\n}\n\n// 查询用户以太币转账记录\n{\n    \"pageSize\":10,\n    \"pageIndex\":1,\n    \"where\":{\n\t\t\"user_id\":\"4449010040510C20375C0000\",\n        \"contract_address\":null\t\t\t\t\t// 合约地址为null，表示查询以太币转账记录\n    }\n}\n\n// 查询用户代币转账记录\n{\n    \"pageSize\":10,\n    \"pageIndex\":1,\n    \"where\":{\n\t\t\"user_id\":\"4449010040510C20375C0000\",\n            \"contract_address\":{\n                $ne:null\t // 等效于contract_address != null 表示查询合约代币转账记录\n            }\n    }\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"recordsTotal\": 6,\n        \"data\": [\n            {\n                \"id\": \"44490100984FD93B385C0000\",\n                \"user_id\": \"4449010040510C20375C0000\",\n                \"wallet_id\": \"44490100BC07DB5C375C0000\",\n                \"block_hash\": \"0x9d801f3b67f61c522fbd72af922f43a196d910dcb93a43f90e37949afb4f713e\",\n                \"block_number\": 964625,\n                \"contract_address\": null,\n                \"cumulative_gas_used\": \"21004\",\n                \"fromaddress\": \"0x25090d091a19cabd722f508776ffc2c44119c24b\",\n                \"gas_used\": \"21004\",\n                \"status\": \"1\",\n                \"toaddress\": \"0xa78928eac28219c7d1b1563e9568ada8bfc7677d\",\n                \"transaction_hash\": \"0x75dc1d5ebf61ec766eea3c8282fb0c48db169df5f28920096c43d483c55170be\",\n                \"transaction_index\": 0,\n                \"remark\": \"\",\n                \"created_time\": \"2019-01-11T06:46:49.000Z\",\n                \"created_id\": \"\",\n                \"update_time\": \"2019-01-11T06:46:49.000Z\",\n                \"update_id\": \"\",\n                \"valid\": 1\n            },\n            {\n                \"id\": \"44490100943B9F3B385C0000\",\n                \"user_id\": \"4449010040510C20375C0000\",\n                \"wallet_id\": \"44490100BC07DB5C375C0000\",\n                \"block_hash\": \"0xb8f35117d931172826171510a3e7f3642c78035e4ad92d4bfdf032e893210360\",\n                \"block_number\": 964615,\n                \"contract_address\": null,\n                \"cumulative_gas_used\": \"21004\",\n                \"fromaddress\": \"0x25090d091a19cabd722f508776ffc2c44119c24b\",\n                \"gas_used\": \"21004\",\n                \"status\": \"1\",\n                \"toaddress\": \"0xa78928eac28219c7d1b1563e9568ada8bfc7677d\",\n                \"transaction_hash\": \"0xbe7f43e8d65e42764d7f9316fb6e0d1d6119de3c1d384d75aeeaed9e2c0192b2\",\n                \"transaction_index\": 0,\n                \"remark\": \"\",\n                \"created_time\": \"2019-01-11T06:45:51.000Z\",\n                \"created_id\": \"\",\n                \"update_time\": \"2019-01-11T06:45:51.000Z\",\n                \"update_id\": \"\",\n                \"valid\": 1\n            }\n        ]\n    }\n}\n```\n\n\n\n\n\n\n\n\n\n\n\n###3.3项目API\n\n#### 3.3.1 发起募资\n\n发起项目募资，接口数据不完整的话进一步补充字段\n\n| 名称   | 值                                          |\n| ------ | ------------------------------------------- |\n| API    | `ws_digist/fundraising/initiateFundraising` |\n| METHOD | POST                                        |\n\n**入参**\n\n```js\n {\n      \"company_name\":\"霸得蛮有限公司\",                    // 公司名称\n      \"project_name\":\"活着就是搞事情\",                    // 项目名称\n      \"company_description\":\"这是一家善于搞事情的公司\",    // 公司介绍\n      \"corporate\":\"老王\",                                 // 公司法人名称\n      \"company_contact\":\"18888888888\",                     // 公司联系方式\n      \"company_emergency_contact\":\"1899999999\",           //公司紧急联系方式\n      \"pledged_stock\":20,                                 // 质押股票比例（百分比）\n      \"project_description\":\"这是个很牛的项目，轻轻松进账几分钱。\",       // 项目简介\n      \"project_file\":\"dee123454612353245134523423\",    // 项目文件\n      \"project_val\":\"10000000\",\t\t\t\t\t// 项目规模（单位：元）\n      \"contract_type\":\"S3\",\t\t\t\t\t// 合约类型\n      \"license_type\":\"S3\",\t\t\t\t\t// 牌照类型\n      \"project_scale\":0,                       // 筹集规模（货币单位：元）   \n      \"equity_income\":10,                      // 股权收益权（单位：百分比） \n      \"project_token\":\"MANA\",             \t\t// 项目代币\n      \"investment_period\":\"3Y\",                // 投资年限:3Y（最后一位表示日期单位：Y、M、D，分别表示年、月、日）\n      \"minimum_subscription\":1000,             // 最低认购数量\n }\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100D454720E345C0000\",\n        \"company_name\": \"霸得蛮有限公司\",\n        \"company_description\": \"这是一家善于搞事情的公司\",\n        \"corporate\": \"老王\",\n        \"company_contact\": \"18888888888\",\n        \"company_emergency_contact\": \"1899999999\",\n        \"pledged_stock\": 20,\n        \"project_name\": \"活着就是搞事情\",\n        \"project_description\": \"这是个很牛的项目，轻轻松进账几分钱。\",\n        \"project_file\": \"dee123454612353245134523423\",\n        \"project_val\": -1,\n        \"currency\": \"CNY\",\n        \"project_token\": \"MANA/TRUE\",\n        \"project_scale\": -1,\n        \"project_mode\": \"项目收益权\",\n        \"minimum_subscription\": 1000,\n        \"investment_period\": \"3Y\",\n        \"equity_income\": 10,\n        \"exit_early\": \"无\",\n        \"project_status\": \"new\",\n        \"follow\": 0,\n        \"vote_target\": 0,\n        \"subscribed_quantity\": 0,\n        \"subscribed_frequency\": 0,\n        \"vote\": 0,\n        \"remark\": \"\",\n        \"created_time\": \"2019-01-08T02:44:01.722Z\",\n        \"update_time\": \"2019-01-08T02:44:01.722Z\",\n        \"valid\": 1\n    }\n}\n```\n\n\n\n#### 3.3.2 一键发币\n\n发币流程是在募资项目资质审核通过之后，（如果需要投票的话，还需要在投票达标之后）才能触发的功能，由项目发起人触发一键发币\n\n\n\n| 名称   | 值                                    |\n| ------ | ------------------------------------- |\n| API    | `ws_service/fundraising/publishToken` |\n| METHOD | POST                                  |\n\n**入参**\n\n```js\n// 一键发币，一个项目只能发起一次，根据状态判定\n{\n    \"id\":\"555301000C119D03225C0000\",\t// 项目id\n    \"user_id\":\"4449010040510C20375C0000\",\t// 用户id\n    \"address\":\"0x25090d091a19CAbD722F508776ffc2c44119C24B\"\t\t// 用户钱包id\n}\n```\n\n**出参**\n\n```js\n// 发币成功\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": \"智能合约发布成功\"\n}\n\n\n// 发币失败\n{\n    \"code\": \"1\",\n    \"msg\": \"当前finished状态，不允许执行发币操作\",\n    \"module\": \"DigiST\",\n    \"result\": \"请求失败\"\n}\n```\n\n\n\n#### 3.3.3 募资列表查询\n\n募资列表查询（状态查询）,不同的状态查询指定查询参数即可\n\n| 名称   | 值                                         |\n| ------ | ------------------------------------------ |\n| API    | `ws_digist/fundraising/getFundraisingList` |\n| METHOD | POST                                       |\n\n**入参**\n\n```js\n// 入参是一个动态参数结构\n{\n  pageSize:2,\t\t\t// 每页记录数，默认是10,\n  pageIndex:1,\t\t\t// 分页索引，从1开始\n  // 查询where条件，多种条件组合请参考`4.查询条件模型`\n  where: {\n      // \"project_status\": \"closed\"\n      \"project_status\": {\n          $in: [\"closed\"]               // in查询，更多规则请参考查询表\n      }\n  }\n}\n\n// 描述项目状态查询\n项目状态字段（project_status）：\nnew（新建项目）、\nvoting（投票中）、\nraise（投票完成，不投票表示审核完成）、\nfinished（已发布）、\nfail（拒绝或者投票失败项目）、\nclosed（过期关闭）\n\n查询新项目状态的投资项目，如下示例：\n{\n  where: {\n      \"project_status\": \"new\"\t\t\t// 等价于查询project_status=\"new\" 的数据\n  }\n}\n查询多个值状态值为fail、closed两个状态的数据记录\n{\n  where: {\n       \"project_status\": {\n          $in: [\"fail\",\"closed\"]               // in查询，更多规则请参考查询表\n      }\n  }\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"recordsTotal\": 17,\n        \"data\": [\n            {\n                \"id\": \"55530100A85F92F3225C0000\",\n                \"user_id\": \"49440100583A36F61E5C0000\",\n                \"company_name\": \"霸得蛮有限公司\",\n                \"company_description\": \"这是一家善于搞事情的公司\",\n                \"corporate\": \"老王\",\n                \"company_contact\": \"18888888888\",\n                \"company_emergency_contact\": \"1899999999\",\n                \"pledged_stock\": 20,\n                \"project_name\": \"活着就是搞事情\",\n                \"project_description\": \"这是个很牛的项目，轻轻松进账几分钱。\",\n                \"project_file\": \"dee123454612353245134523423\",\n                \"project_val\": -1,\n                \"currency\": \"CNY\",\n                \"project_token\": \"MANA/TRUE\",\n                \"project_scale\": -1,\n                \"project_mode\": \"项目收益权\",\n                \"minimum_subscription\": 1000,\n                \"investment_period\": \"3Y\",\n                \"equity_income\": 10,\n                \"exit_early\": \"无\",\n                \"project_status\": \"new\",\n                \"follow\": 0,\n                \"vote_target\": 0,\n                \"subscribed_quantity\": 0,\n                \"subscribed_frequency\": 0,\n                \"vote\": 0,\n                \"remark\": \"\",\n                \"created_time\": \"2018-12-26T03:20:49.000Z\",\n                \"created_id\": \"49440100583A36F61E5C0000\",\n                \"update_time\": \"2018-12-26T03:20:49.000Z\",\n                \"update_id\": \"49440100583A36F61E5C0000\",\n                \"valid\": 1\n            },\n            {\n                \"id\": \"55530100E41E9A05225C0000\",\n                \"user_id\": \"49440100583A36F61E5C0000\",\n                \"company_name\": \"霸得蛮有限公司\",\n                \"company_description\": \"这是一家善于搞事情的公司\",\n                \"corporate\": \"老王\",\n                \"company_contact\": \"18888888888\",\n                \"company_emergency_contact\": \"1899999999\",\n                \"pledged_stock\": 20,\n                \"project_name\": \"活着就是搞事情\",\n                \"project_description\": \"这是个很牛的项目，轻轻松进账几分钱。\",\n                \"project_file\": \"dee123454612353245134523423\",\n                \"project_val\": -1,\n                \"currency\": \"CNY\",\n                \"project_token\": \"MANA/TRUE\",\n                \"project_scale\": -1,\n                \"project_mode\": \"项目收益权\",\n                \"minimum_subscription\": 1000,\n                \"investment_period\": \"3Y\",\n                \"equity_income\": 10,\n                \"exit_early\": \"无\",\n                \"project_status\": \"new\",\n                \"follow\": 0,\n                \"vote_target\": 0,\n                \"subscribed_quantity\": 0,\n                \"subscribed_frequency\": 0,\n                \"vote\": 0,\n                \"remark\": \"\",\n                \"created_time\": \"2018-12-25T10:25:29.000Z\",\n                \"created_id\": \"49440100583A36F61E5C0000\",\n                \"update_time\": \"2018-12-25T10:25:29.000Z\",\n                \"update_id\": \"49440100583A36F61E5C0000\",\n                \"valid\": 1\n            }\n        ]\n    }\n}\n```\n\n\n\n#### 3.3.4 募资项目详情信息查询\n\n单条数据详情查询，使用GET查询，get请求能浏览器缓存数据\n\n| 名称   | 值                                               |\n| ------ | ------------------------------------------------ |\n| API    | `ws_digist/fundraising/getFundraisingDetail/:id` |\n| METHOD | GET                                              |\n\n**入参**\n\n```js\n// url最后一位带参\n// 例如：http://localhost:9980/ws_digist/fundraising/getFundraisingDetail/5553010010546D03225C0000\n最后的`5553010010546D03225C0000`就是参数id\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"5553010010546D03225C0000\",\n        \"user_id\": \"49440100583A36F61E5C0000\",\n        \"company_name\": \"霸得蛮有限公司\",\n        \"company_description\": \"这是一家善于搞事情的公司\",\n        \"corporate\": \"老王\",\n        \"company_contact\": \"18888888888\",\n        \"company_emergency_contact\": \"1899999999\",\n        \"pledged_stock\": 20,\n        \"project_name\": \"活着就是搞事情\",\n        \"project_description\": \"这是个很牛的项目，轻轻松进账几分钱。\",\n        \"project_file\": \"dee123454612353245134523423\",\n        \"project_val\": -1,\n        \"currency\": \"CNY\",\n        \"project_token\": \"MANA/TRUE\",\n        \"project_scale\": -1,\n        \"project_mode\": \"项目收益权\",\n        \"minimum_subscription\": 1000,\n        \"investment_period\": \"3Y\",\n        \"equity_income\": 10,\n        \"exit_early\": \"无\",\n        \"project_status\": \"closed\",\n        \"follow\": 0,\n        \"vote_target\": 0,\n        \"subscribed_quantity\": 0,\n        \"subscribed_frequency\": 0,\n        \"vote\": 0,\n        \"remark\": \"\",\n        \"created_time\": \"2018-12-25T10:16:13.000Z\",\n        \"created_id\": \"49440100583A36F61E5C0000\",\n        \"update_time\": \"2018-12-25T10:16:13.000Z\",\n        \"update_id\": \"49440100583A36F61E5C0000\",\n        \"valid\": 1\n    }\n}\n```\n\n\n\n\n\n#### 3.3.5 用户添加/解除关注\n\n关注募资项目\n\n| 名称   | 值                                    |\n| ------ | ------------------------------------- |\n| API    | `ws_digist/project/userFollowProject` |\n| METHOD | POST                                  |\n\n**入参**\n\n```js\n{\n\t\"user_id\":\"44490100782A0F0C365C0000\",\n\t\"fundraising_id\":\"55530100E8254F03225C0000\",\n\t\"action\":\"ADD\"\n}\n```\n\n**出参**\n\n```js\n// ADD，添加项目关注\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100A87A2BB7425C0000\",\n        \"remark\": \"项目关注成功\"\n    }\n}\n\n// DEL，取消项目关注\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": 3\n}\n```\n\n\n\n#### 3.3.6 查询用户关注的项目列表\n\n\n\n| 名称   | 值                                       |\n| ------ | ---------------------------------------- |\n| API    | `ws_digist/project/getUserFollowProject` |\n| METHOD | POST                                     |\n\n**入参**\n\n```js\n{\n    \"pageSize\":10,\t \n    \"pageIndex\":1,\t \n    \"where\":{\n\t\t\"user_id\":\"44490100782A0F0C365C0000\"\n    }\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"recordsTotal\": 1,\n        \"data\": [\n            {\n                \"id\": \"55530100E46DAC2B235C0000\",\n                \"fundraising_id\": \"555301000C119D03225C0000\",\n                \"user_id\": \"44490100782A0F0C365C0000\",\n                \"remark\": \"\",\n                \"created_time\": \"2018-12-26T07:20:12.000Z\",\n                \"created_id\": \"49440100583A36F61E5C0000\",\n                \"update_time\": \"2018-12-26T07:20:12.000Z\",\n                \"update_id\": \"49440100583A36F61E5C0000\",\n                \"valid\": 1\n            }\n        ]\n    }\n}\n```\n\n\n\n\n\n#### 3.3.7 查询用户投资的项目\n\n\n\n| 名称   | 值                                           |\n| ------ | -------------------------------------------- |\n| API    | `ws_digist/project/getUserInvestmentProject` |\n| METHOD | POST                                         |\n\n**入参**\n\n```js\n{\n    \"pageSize\":10,\t \n    \"pageIndex\":1,\t \n    \"where\":{\n\t\t\"user_id\":\"44490100782A0F0C365C0000\"\n    }\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"recordsTotal\": 1,\n        \"data\": [\n            {\n                \"id\": \"44490100D069214A3F5C0100\",\n                \"user_id\": \"44490100782A0F0C365C0000\",\n                \"fundraising_id\": \"555301004C377503225C0000\",\n                \"project_name\": \"活着就是搞事情\",\n                \"subscription_quantity\": 0.2,\n                \"project_status\": \"已投资\",\n                \"buying_times\": 2,\n                \"contract_address\": \"0xA49D6ac4aDEAEfA6a951A3c91d75B80A03cA4ddc\",\n                \"remark\": \"\",\n                \"created_time\": \"2019-01-16T15:13:37.000Z\",\n                \"created_id\": \"44490100782A0F0C365C0000\",\n                \"update_time\": \"2019-01-16T15:19:41.000Z\",\n                \"update_id\": \"44490100782A0F0C365C0000\",\n                \"valid\": 1\n            }\n        ]\n    }\n}\n```\n\n\n\n\n\n\n\n#### 3.3.8 查询用户投资项目详情\n\n\n\n| 名称   | 值                                                 |\n| ------ | -------------------------------------------------- |\n| API    | `ws_digist/project/getUserInvestmentProjectDetail` |\n| METHOD | POST                                               |\n\n**入参**\n\n```js\n{\n\t\"id\":\"44490100D069214A3F5C0100\"\t\t\t// 投资项目id\n}\n```\n\n**出参**\n\n```js\n{\n    \"code\": \"0\",\n    \"msg\": \"请求成功\",\n    \"module\": \"DigiST\",\n    \"result\": {\n        \"id\": \"44490100D069214A3F5C0100\",\n        \"user_id\": \"44490100782A0F0C365C0000\",\n        \"fundraising_id\": \"555301004C377503225C0000\",\n        \"project_name\": \"活着就是搞事情\",\n        \"subscription_quantity\": 0.2,\n        \"project_status\": \"已投资\",\n        \"buying_times\": 2,\n        \"contract_address\": \"0xA49D6ac4aDEAEfA6a951A3c91d75B80A03cA4ddc\",\n        \"remark\": \"\",\n        \"created_time\": \"2019-01-16T15:13:37.000Z\",\n        \"created_id\": \"44490100782A0F0C365C0000\",\n        \"update_time\": \"2019-01-16T15:19:41.000Z\",\n        \"update_id\": \"44490100782A0F0C365C0000\",\n        \"valid\": 1\n    }\n}\n```\n\n\n\n#### 3.\n\n\n\n| 名称   | 值                        |\n| ------ | ------------------------- |\n| API    | `/ws_digist/fundraising/` |\n| METHOD | POST                      |\n\n**入参**\n\n```js\n\n```\n\n**出参**\n\n```js\n\n```\n\n\n\n\n\n## 4. 查询条件模型\n\n#### WHERE\n\n| sql                                                          | orm                                                     |\n| ------------------------------------------------------------ | ------------------------------------------------------- |\n| SELECT * FROM post WHERE authorId = 12 AND status = 'active' | Post.findAll({where: { authorId: 2,status: 'active'}}); |\n\n#### Operators\n\n```\nPost.update({\n  updatedAt: null,\n}, {\n  where: {\n    deletedAt: {\n      $ne: null\n    }\n  }\n});\n// UPDATE post SET updatedAt = null WHERE deletedAt NOT NULL;\n\nPost.findAll({\n  where: sequelize.where(sequelize.fn('char_length', sequelize.col('status')), 6)\n});\n// SELECT * FROM post WHERE char_length(status) = 6;\n\n{\n  rank: {\n    $or: {\n      $lt: 1000,\n      $eq: null\n    }\n  }\n}\n// rank \u003c 1000 OR rank IS NULL\n\n{\n  createdAt: {\n    $lt: new Date(),\n    $gt: new Date(new Date() - 24 * 60 * 60 * 1000)\n  }\n}\n// createdAt \u003c [timestamp] AND createdAt \u003e [timestamp]\n\n{\n  $or: [\n    {\n      title: {\n        $like: 'Boat%'\n      }\n    },\n    {\n      description: {\n        $like: '%boat%'\n      }\n    }\n  ]\n}\n// title LIKE 'Boat%' OR description LIKE '%boat%'\n```\n查询条件模型操作符与sql条件的对照\n\n| op                             | define                                                       |\n| ------------------------------ | ------------------------------------------------------------ |\n| $and: {a: 5}                   | AND (a = 5)                                                  |\n| $or: [{a: 5}, {a: 6}]          | (a = 5 OR a = 6)                                             |\n| $gt: 6,                        | \u003e 6                                                          |\n| $gte: 6,                       | \u003e= 6                                                         |\n| $lt: 10,                       | \u003c 10                                                         |\n| $lte: 10,                      | \u003c= 10                                                        |\n| $ne: 20,                       | != 20                                                        |\n| $between: [6, 10],             | BETWEEN 6 AND 10                                             |\n| $notBetween: [11, 15],         | NOT BETWEEN 11 AND 15                                        |\n| $in: [1, 2],                   | IN [1, 2]                                                    |\n| $notIn: [1, 2],                | NOT IN [1, 2]                                                |\n| $like: '%hat',                 | LIKE '%hat'                                                  |\n| $notLike: '%hat'               | NOT LIKE '%hat'                                              |\n| $iLike: '%hat'                 | ILIKE '%hat' (case insensitive) (PG only)                    |\n| $notILike: '%hat'              | NOT ILIKE '%hat'  (PG only)                                  |\n| $like: { $any: ['cat', 'hat']} | LIKE ANY ARRAY['cat', 'hat'] - also works for iLike and notLike |\n| $overlap: [1, 2]               | \u0026\u0026 [1, 2] (PG array overlap operator)                        |\n| $contains: [1, 2]              | @\u003e [1, 2] (PG array contains operator)                       |\n| $contained: [1, 2]             | \u003c@ [1, 2] (PG array contained by operator)                   |\n| $any: [2,3]                    | ANY ARRAY[2, 3]::INTEGER (PG only)                           |\n| $col: 'user.organization_id'   | \"user\".\"organization_id\", with dialect specific column identifiers, PG in this example  --$col取表的字段 |\n\n\n\n##5.数据字典\n\n\n\n| 名称                | 代码                      | 数据类型      | 注释                                                         |\n| ------------------- | ------------------------- | ------------- | ------------------------------------------------------------ |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 钱包地址            | wallet_address            | varchar(60)   | 钱包地址                                                     |\n| 登录密码            | password                  | varchar(1024) | 登录密码                                                     |\n| 支付密码            | pay_password              | varchar(1024) | 支付密码                                                     |\n| 姓名                | name                      | varchar(32)   | 姓名                                                         |\n| 手机号码            | mobile                    | varchar(22)   | 手机号码                                                     |\n| 是否手机认证        | is_mobile_auth            | tinyint       | 是否手机认证:1表示已认证、0表示未认证                        |\n| 邮箱                | email                     | varchar(60)   | 邮箱                                                         |\n| 是否邮箱认证        | is_email_auth             | tinyint       | 是否邮箱认证：1表示已认证、0表示未认证                       |\n| 身份证              | idcard                    | varchar(20)   | 身份证                                                       |\n| 是否身份证认证      | is_idcard_auth            | tinyint       | 是否身份证认证                                               |\n| 第二级认证信息      | second_auth_info          | json          | 第二级认证信息：1表示已认证、0表示未认证                     |\n| 是否第二级认证      | is_second_auth            | tinyint       | 1表示已认证、0表示未认证                                     |\n| 第三级认证信息      | third_auth_info           | json          | 第三级认证信息                                               |\n| 是否第三级认证      | is_third_auth             | tinyint       | 是否第三级认证：1表示已认证、0表示未认证                     |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 用户id              | user_id                   | varchar(50)   | 用户id                                                       |\n| 公司全称            | company_name              | varchar(120)  | 公司全称                                                     |\n| 公司简介            | company_description       | varchar(800)  | 公司简介                                                     |\n| 公司法人名称        | corporate                 | varchar(40)   | 公司法人名称                                                 |\n| 公司联系方式        | company_contact           | varchar(20)   | 公司联系方式                                                 |\n| 公司紧急联系方式    | company_emergency_contact | varchar(20)   | 公司紧急联系方式                                             |\n| 质押股票比例        | pledged_stock             | float         | 质押股票比例（百分比）                                       |\n| 项目名称            | project_name              | varchar(80)   | 项目名称                                                     |\n| 项目简介            | project_description       | varchar(800)  | 项目简介                                                     |\n| 项目文件            | project_file              | json          | 项目文件                                                     |\n| 项目估值            | project_val               | bigint        | 项目估值（货币单位：分）                                     |\n| 货币                | currency                  | varchar(3)    | 发行项目估值货币单位：CNY、USD……（参考世界各国货币名称符号大全） |\n| 项目代币            | project_token             | varchar(20)   | 项目代币：MANA/TRUE                                          |\n| 筹集规模            | project_scale             | bigint        | 筹集规模（货币单位：分）                                     |\n| 筹集规模式          | project_mode              | varchar(20)   | 筹集规模式:项目收益权、项目收益权                            |\n| 最低认购数量        | minimum_subscription      | bigint        | 最低认购数量                                                 |\n| 投资年限            | investment_period         | varchar(8)    | 投资年限:3Y（最后一位表示日期单位：Y、M、D，分别表示年、月、日） |\n| 股权收益权          | equity_income             | float         | 股权收益权（单位：百分比）                                   |\n| 提前退出窗口        | exit_early                | varchar(40)   | 提前退出窗口                                                 |\n| 项目状态            | project_status            | varchar(20)   | 项目状态:new、voting、raise、finished、fail、closed          |\n| 关注度              | follow                    | int           | 关注度                                                       |\n| 选票目标            | vote_target               | int           | 选票目标                                                     |\n| 已认购数量          | subscribed_quantity       | int           | 已认购数量                                                   |\n| 已认购次数          | subscribed_frequency      | int           | 已认购次数                                                   |\n| 选票                | vote                      | int           | 选票                                                         |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| user_id             | user_id                   | varchar(50)   | 用户id                                                       |\n| 募资项目id          | fundraising_id            | varchar(50)   | 项目id                                                       |\n| 项目名称            | project_name              | varchar(80)   | 项目名称                                                     |\n| 认购数量            | subscription_quantity     | bigint        | 认购数量                                                     |\n| 项目状态            | project_status            | varchar(22)   | 项目状态：已投资、已到期                                     |\n| 买入次数            | buying_times              | int           | 买入次数                                                     |\n| 合约地址            | contract_address          | varchar(128)  | 合约地址                                                     |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 项目id              | fundraising_id            | varchar(50)   | 项目id                                                       |\n| 用户id              | user_id                   | varchar(50)   | 用户id                                                       |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 项目id              | project_id                | varchar(50)   | 项目id                                                       |\n| 日志类型            | log_type                  | varchar(10)   | 日志类型：update、audit                                      |\n| 结果                | results                   | varchar(10)   | 审核结果:update、pass、fail                                  |\n| 意见                | opinion                   | varchar(200)  | 审核意见                                                     |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 用户id              | user_id                   | varchar(50)   | 用户id                                                       |\n| 消息内容            | content                   | varchar(400)  | 消息内容                                                     |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| 募资项目id          | fundraising_id            | varchar(50)   |                                                              |\n| 合约类型            | contract_type             | varchar(8)    | 合约类型：S3、DS                                             |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| user_id             | user_id                   | varchar(50)   | user_id                                                      |\n| 钱包地址            | address                   | varchar(64)   | 钱包地址                                                     |\n| 助记词              | mnemonic                  | varchar(512)  | 助记词（数据加密）                                           |\n| 私钥                | privateKey                | varchar(512)  | 私钥（数据加密）                                             |\n| keystore            | keystore                  | varchar(2048) | keystore（数据加密）                                         |\n| 余额                | balance                   | bigint        | 余额，仅做数据展示                                           |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n| id                  | id                        | varchar(50)   | 主键ID                                                       |\n| useri_id            | useri_id                  | varchar(50)   | useri_id                                                     |\n| 钱包id              | wallet_id                 | varchar(50)   | 钱包id                                                       |\n| 转账金额            | transfer_amount           | varchar(32)   | 转账金额                                                     |\n| block_hash          | block_hash                | varchar(128)  | block_hash                                                   |\n| block_number        | block_number              | int           | block_number                                                 |\n| contract_address    | contract_address          | varchar(128)  | contract_address                                             |\n| cumulative_gas_used | cumulative_gas_used       | varchar(32)   | cumulative_gas_used                                          |\n| fromaddress         | fromaddress               | varchar(128)  | fromaddress                                                  |\n| gas_used            | gas_used                  | varchar(32)   | gas_used                                                     |\n| status              | status                    | varchar(12)   | status                                                       |\n| toaddress           | toaddress                 | varchar(128)  | toaddress                                                    |\n| transaction_hash    | transaction_hash          | varchar(128)  | transaction_hash                                             |\n| transaction_index   | transaction_index         | int           | transaction_index                                            |\n| 备注                | remark                    | varchar(400)  | 备注                                                         |\n| 创建时间            | created_time              | datetime(3)   | 创建时间                                                     |\n| 创建id              | created_id                | varchar(40)   | 创建id                                                       |\n| 更新时间            | update_time               | datetime(3)   | 更新时间                                                     |\n| 更新id              | update_id                 | varchar(40)   | 更新id                                                       |\n| 是否有效            | valid                     | tinyint(1)    | 是否有效（1有效；0无效）                                     |\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzouwei%2Fdigist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzouwei%2Fdigist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzouwei%2Fdigist/lists"}