Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial TSS service (EVM & Zano support) #14

Open
wants to merge 185 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
ce858f1
initial cobra cli structure && commands
slbmax Dec 6, 2024
21bf072
added base docs
slbmax Dec 11, 2024
3dbf8c0
added detailed protocol docs
slbmax Dec 28, 2024
5cda3e3
started keygen
slbmax Jan 2, 2025
c1ec9f2
wip
slbmax Jan 6, 2025
8304725
added more config and cmd docs
slbmax Jan 6, 2025
614cd54
Merge pull request #1 from hyle-team/docs/modules
slbmax Jan 6, 2025
77517be
Merge develop into keygen
slbmax Jan 6, 2025
14c6b97
added keygen session
slbmax Jan 8, 2025
2e701b2
signer init
EduardMikhrin Jan 8, 2025
0bfb6a9
signer
EduardMikhrin Jan 8, 2025
ed9ae66
fixed keygen errors && added local tss setup
slbmax Jan 8, 2025
1a4c138
merge keygen
EduardMikhrin Jan 9, 2025
ae8c3f4
signer fixes
EduardMikhrin Jan 9, 2025
17da66c
deleted mock session
EduardMikhrin Jan 9, 2025
cbc3aa6
Update boundaries.go
EduardMikhrin Jan 9, 2025
a12e6ce
Update boundaries.go
EduardMikhrin Jan 9, 2025
3c2cfc3
fix
EduardMikhrin Jan 9, 2025
8687a15
Revert "fix"
EduardMikhrin Jan 9, 2025
c297a5a
fix
EduardMikhrin Jan 9, 2025
96b0c83
signer party fix
EduardMikhrin Jan 9, 2025
96abac0
sign session
EduardMikhrin Jan 9, 2025
27db375
added signing service cmd
EduardMikhrin Jan 9, 2025
bc9668e
add data validation
EduardMikhrin Jan 9, 2025
39509bf
enhanced docs
slbmax Jan 9, 2025
152c903
sign session config update
EduardMikhrin Jan 9, 2025
c2d9f97
storage update
EduardMikhrin Jan 9, 2025
6cce867
cmd update
EduardMikhrin Jan 9, 2025
7c31a38
cmd update
EduardMikhrin Jan 9, 2025
e7296a1
error fix
EduardMikhrin Jan 9, 2025
4051417
config update
EduardMikhrin Jan 9, 2025
551a7a0
merge keygen
EduardMikhrin Jan 9, 2025
13c4f9a
signer update
EduardMikhrin Jan 9, 2025
ec7fb13
consensus init
EduardMikhrin Jan 10, 2025
e7302ca
consensus init
EduardMikhrin Jan 10, 2025
67d7fb1
proto update
EduardMikhrin Jan 10, 2025
2a0605e
proto update
EduardMikhrin Jan 10, 2025
8d683de
consensus
EduardMikhrin Jan 10, 2025
e3c922c
improved proto definitions, generation; added deposit info
slbmax Jan 11, 2025
c0c59f7
added missing gateway deps
slbmax Jan 11, 2025
05e9f25
consensus
EduardMikhrin Jan 14, 2025
c651a46
consensus
EduardMikhrin Jan 15, 2025
293d3f1
consensus
EduardMikhrin Jan 15, 2025
4a52de0
consensus
EduardMikhrin Jan 15, 2025
2dd3373
consensus
EduardMikhrin Jan 15, 2025
42b77b5
consensus
EduardMikhrin Jan 15, 2025
dde56cb
consensus
EduardMikhrin Jan 15, 2025
8d194d0
consensus
EduardMikhrin Jan 15, 2025
b0c327f
proxies init
EduardMikhrin Jan 16, 2025
5dd136d
constructor
EduardMikhrin Jan 20, 2025
ad6d77a
merge deposits
EduardMikhrin Jan 20, 2025
0a642e1
added chains
slbmax Jan 20, 2025
20b8e37
merge deposits
EduardMikhrin Jan 20, 2025
c5797ba
merge deposits
EduardMikhrin Jan 20, 2025
cf129e9
merge consensus
EduardMikhrin Jan 20, 2025
0bccaec
update
EduardMikhrin Jan 20, 2025
a4507b5
Merge pull request #3 from hyle-team/dev/keygen
slbmax Jan 20, 2025
28feceb
Merge pull request #2 from hyle-team/dev/signer
slbmax Jan 20, 2025
c708dca
Merge pull request #7 from hyle-team/dev/deposits
slbmax Jan 20, 2025
009e133
update
EduardMikhrin Jan 20, 2025
154fbcd
Merge remote-tracking branch 'origin/develop' into dev/api-db
EduardMikhrin Jan 20, 2025
2fbae5f
update
EduardMikhrin Jan 20, 2025
3522a40
update
EduardMikhrin Jan 20, 2025
a51f700
update
EduardMikhrin Jan 21, 2025
7787e6d
api & db
EduardMikhrin Jan 22, 2025
5c593fc
codestyle fixes
EduardMikhrin Jan 22, 2025
f2d8f00
go.sum
EduardMikhrin Jan 22, 2025
4d10c71
fix
EduardMikhrin Jan 22, 2025
39ee561
fix
EduardMikhrin Jan 22, 2025
304a400
fix
EduardMikhrin Jan 22, 2025
5ecc7b4
fixes
EduardMikhrin Jan 22, 2025
666bf6c
fixes
EduardMikhrin Jan 22, 2025
f36e84e
init
EduardMikhrin Jan 22, 2025
1bbe39a
improved errors
EduardMikhrin Jan 22, 2025
4012bb5
merge api-db
EduardMikhrin Jan 22, 2025
4cd3577
-
EduardMikhrin Jan 22, 2025
42bbb51
rename proxy to client
EduardMikhrin Jan 22, 2025
18e4d07
merge api-db
EduardMikhrin Jan 22, 2025
2c73025
connector init
EduardMikhrin Jan 23, 2025
a9a272a
started consensus
slbmax Jan 23, 2025
3d2a5a2
fixes
EduardMikhrin Jan 23, 2025
a9caccf
fixes
EduardMikhrin Jan 23, 2025
1b0cb37
merge api
EduardMikhrin Jan 23, 2025
b702f89
code improvements
EduardMikhrin Jan 23, 2025
bc13d43
config improvements
EduardMikhrin Jan 23, 2025
a0f02c0
code improvements
EduardMikhrin Jan 23, 2025
cc1706b
started signing session
slbmax Jan 23, 2025
6343215
Merge pull request #9 from hyle-team/dev/tx-processor
slbmax Jan 23, 2025
7cb5312
Merge pull request #8 from hyle-team/dev/api-db
slbmax Jan 23, 2025
5c4c5da
connector
EduardMikhrin Jan 23, 2025
af97cec
Merge pull request #10 from hyle-team/dev/tx-processor
slbmax Jan 23, 2025
3124d65
merge develop
slbmax Jan 23, 2025
25b4d72
fixes
slbmax Jan 24, 2025
d5a377b
added evm signing session
slbmax Jan 28, 2025
891bf12
tss signing fixes
slbmax Jan 28, 2025
efb9327
tx nonce type fix
slbmax Jan 28, 2025
cfe8fb4
refactor
slbmax Jan 29, 2025
998d1bc
refactor api
slbmax Jan 29, 2025
70b7fa1
Merge branch 'dev/cons' into dev/subscriber
EduardMikhrin Jan 29, 2025
f1aa153
refactor cmd
slbmax Jan 29, 2025
65dbb32
subscriber
EduardMikhrin Jan 30, 2025
64e40db
merge dev/cons
EduardMikhrin Jan 30, 2025
e7031cd
fixes
EduardMikhrin Jan 30, 2025
817ce01
fixes
EduardMikhrin Jan 30, 2025
ea6d4a9
fixes
EduardMikhrin Jan 30, 2025
75793c1
fixes
EduardMikhrin Jan 30, 2025
b4f7667
added deposit acceptor session
slbmax Jan 30, 2025
c911882
refactoring
EduardMikhrin Jan 30, 2025
4e8b0ea
fixes
EduardMikhrin Jan 30, 2025
3399e89
fixes
EduardMikhrin Jan 30, 2025
45915d0
refactored session
slbmax Jan 31, 2025
4819abb
added zano withdrawal constructor
slbmax Jan 31, 2025
25402eb
bump bridge version && evm finalizer
EduardMikhrin Feb 3, 2025
5812853
fix pointers
EduardMikhrin Feb 3, 2025
75c9fda
fixes
EduardMikhrin Feb 4, 2025
720edbe
fixes
EduardMikhrin Feb 4, 2025
bdc63f7
fixes
EduardMikhrin Feb 4, 2025
54a6efa
cleanup
slbmax Feb 4, 2025
add8612
Merge pull request #12 from hyle-team/dev/finalizer
slbmax Feb 4, 2025
b3d1192
added zano finalizer
slbmax Feb 4, 2025
12baac1
enhanced logs & configuration
slbmax Feb 4, 2025
8a45d54
fixes
EduardMikhrin Feb 4, 2025
f603f22
Merge branch 'dev/cons' into dev/finalizer
slbmax Feb 4, 2025
b79d0b6
fixes
EduardMikhrin Feb 5, 2025
bb7219a
fixes
EduardMikhrin Feb 5, 2025
285365d
fixes && cleanup
slbmax Feb 5, 2025
fbb3af5
Add CI
alexvarko Feb 6, 2025
4dbcc3b
Add workflow for temp branch
alexvarko Feb 6, 2025
b4b675f
Update path to skaffold.yaml in CI
alexvarko Feb 6, 2025
2145918
Update path to skaffold.yaml in CI
alexvarko Feb 6, 2025
1261411
Fix CI
alexvarko Feb 6, 2025
a8bc804
merged dev/cons
slbmax Feb 6, 2025
2ac742c
fix keygen session
slbmax Feb 7, 2025
33224d5
expanded helper commands
slbmax Feb 12, 2025
772b40e
Merge pull request #11 from hyle-team/dev/subscriber
slbmax Feb 12, 2025
3b949c4
removed temp branch gh action
slbmax Feb 12, 2025
005a785
Merge pull request #13 from hyle-team/dev/cons
slbmax Feb 12, 2025
265a941
started bitcoin integration
slbmax Feb 18, 2025
e2fcddb
fix btc address derivation
slbmax Feb 18, 2025
3f88eb5
added btc session
slbmax Feb 19, 2025
a0cfdd5
fixed btc session
slbmax Feb 19, 2025
20fb9a5
finished bitcoin session
slbmax Feb 20, 2025
3fc5b57
added temp action to build image
slbmax Feb 21, 2025
6acdbc4
fixed btc chain configuration
slbmax Feb 21, 2025
7efc9a8
fixed btc chain configuration again
slbmax Feb 21, 2025
a52501c
generalized consensus module
slbmax Feb 26, 2025
f0a3867
added check of deposit existence on core
EduardMikhrin Feb 27, 2025
4079f93
deposit struct update
EduardMikhrin Feb 27, 2025
be79720
refactoring
EduardMikhrin Feb 27, 2025
26a8919
refactoring
EduardMikhrin Feb 28, 2025
75ba945
refactoring
EduardMikhrin Feb 28, 2025
a3aad18
refactoring
EduardMikhrin Feb 28, 2025
d106105
started bitcoin resharing mode
slbmax Feb 28, 2025
faf703f
Update submit_withdraw.go
EduardMikhrin Feb 28, 2025
f7a465a
cli doc added
EduardMikhrin Feb 28, 2025
48aa8a6
Merge pull request #16 from hyle-team/dev/submit-endpoint-update
slbmax Mar 3, 2025
d8328f5
added party sync status
EduardMikhrin Mar 3, 2025
379f1d9
added btc reshare mode
slbmax Mar 4, 2025
472ac2a
added syncer && fetches
EduardMikhrin Mar 5, 2025
a3f4960
proto update
EduardMikhrin Mar 5, 2025
c898d84
added syncer
EduardMikhrin Mar 5, 2025
054b9e2
cleanup
EduardMikhrin Mar 5, 2025
6dc0444
cmd doc update
EduardMikhrin Mar 5, 2025
bf75ae2
fixes
EduardMikhrin Mar 5, 2025
4e61424
sync fixes
EduardMikhrin Mar 6, 2025
d7d6a01
fixed errors
slbmax Mar 6, 2025
740f51e
optimized fees amount
slbmax Mar 10, 2025
44d6a49
added btc consolidation process
slbmax Mar 10, 2025
2837f7e
merged `dev/bitcoin`
slbmax Mar 10, 2025
76acb6b
Merge pull request #18 from hyle-team/dev/resharing-btc
slbmax Mar 10, 2025
8f717a2
Merge pull request #15 from hyle-team/dev/bitcoin
slbmax Mar 12, 2025
473f74d
sync fixes
EduardMikhrin Mar 13, 2025
8f866b9
fixed Pectra fork issues
slbmax Mar 13, 2025
a712a31
fixed response structure
slbmax Mar 13, 2025
2373e34
fixed withdrawal data selecting
slbmax Mar 13, 2025
a4c3643
fixes
slbmax Mar 14, 2025
613825a
merged origin/develop
slbmax Mar 17, 2025
96ee5cb
added btc variable session info
slbmax Mar 17, 2025
77ba25e
Merge pull request #17 from hyle-team/dev/party-sync
slbmax Mar 18, 2025
747b754
added mtls configuration
slbmax Mar 19, 2025
5931814
enhanced tss process logging
slbmax Mar 19, 2025
8171c1e
temporary updated actions_only_main.yaml
slbmax Mar 21, 2025
19035b9
added docs
slbmax Mar 21, 2025
b9a0540
added clarifying comment
slbmax Mar 25, 2025
41bd267
Merge pull request #19 from hyle-team/dev/mtls
slbmax Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/actions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build tss-svc docker image
on:
workflow_dispatch:

env:
CI_ACCESS_TOKEN: ${{ secrets.CI_ACCESS_TOKEN }}

jobs:
converge-github:
name: Skaffold Build To Github
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Cache layers
uses: actions/cache@v3
with:
path: "${{ github.workspace }}/.skaffold/cache"
key: skaffold-${{ hashFiles('**/cache') }}
restore-keys: |
skaffold-

- name: Run Skaffold pipeline as command
uses: hiberbee/github-action-skaffold@latest
id: build
with:
filename: build/skaffold.yaml
command: build
repository: ghcr.io/${{ github.repository_owner }}
tag: ${{ github.sha }}
38 changes: 38 additions & 0 deletions .github/workflows/actions_only_main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Build tss-svc docker image
on:
push:
branches:
- 'main'

env:
CI_ACCESS_TOKEN: ${{ secrets.CI_ACCESS_TOKEN }}

jobs:
converge-github:
name: Skaffold Build To Github
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Cache layers
uses: actions/cache@v3
with:
path: "${{ github.workspace }}/.skaffold/cache"
key: skaffold-${{ hashFiles('**/cache') }}
restore-keys: |
skaffold-

- name: Run Skaffold pipeline as command
uses: hiberbee/github-action-skaffold@latest
id: build
with:
filename: build/skaffold.yaml
command: build
repository: ghcr.io/${{ github.repository_owner }}
tag: ${{ github.sha }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.vscode/
.idea/
vendor/
vendor/
signer-data
/build/configs/*.local.*
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
protogen:
cd proto && \
buf generate deposit --template=./templates/deposit.yaml --config=buf.yaml && \
buf generate p2p --template=./templates/p2p.yaml --config=buf.yaml && \
buf generate api --template=./templates/api.yaml --config=buf.yaml

account:
go run main.go helpers generate cosmos-account

preparams-f:
go run main.go helpers generate preparams -o file --path=./internal/config/preparams.json
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
# tss-svc
# TSS Service

Threshold signature service provides the processing and signing of the deposited token transfers to another chains based on the threshold signature scheme (TSS).
It works as a decentralized solution connected to the Cosmos [Bridge Core](https://github.com/hyle-team/bridgeless-core) module to process and accumulate the cross-chain transfers.

The TSS network requires a several parties launched by different validators.
In a cooperation with each other, they will process the incoming deposits and withdraw user funds to the destination chain.

Fore more information check the [`TSS Overview`](./docs/01_overview.md).

## Becoming a part of TSS network
Currently, to become a TSS network party, you should follow the next steps:
- be a validator of the Cosmos [Bridge Network](https://github.com/hyle-team/bridgeless-core);
- run the full nodes of the supported networks (e.g. Ethereum, Bitcoin, Zano etc.);
- todo:add
7 changes: 7 additions & 0 deletions api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# /api

## Description
Contains the OpenAPI/Swagger specs for the project

## Components
To be added
217 changes: 217 additions & 0 deletions api/api_server.swagger.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
{
"swagger": "2.0",
"info": {
"title": "api_server.proto",
"version": "version not set"
},
"tags": [
{
"name": "API"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/check/{chainId}/{txHash}/{txNonce}": {
"get": {
"operationId": "API_CheckWithdrawal",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/apiCheckWithdrawalResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "chainId",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "txHash",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "txNonce",
"in": "path",
"required": true,
"type": "integer",
"format": "int64"
}
],
"tags": [
"API"
]
}
},
"/submit": {
"post": {
"operationId": "API_SubmitWithdrawal",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"type": "object",
"properties": {}
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/depositDepositIdentifier"
}
}
],
"tags": [
"API"
]
}
}
},
"definitions": {
"apiCheckWithdrawalResponse": {
"type": "object",
"properties": {
"depositIdentifier": {
"$ref": "#/definitions/depositDepositIdentifier"
},
"transferData": {
"$ref": "#/definitions/depositTransferData"
},
"withdrawalStatus": {
"$ref": "#/definitions/depositWithdrawalStatus"
},
"withdrawalIdentifier": {
"$ref": "#/definitions/depositWithdrawalIdentifier"
}
}
},
"depositDepositIdentifier": {
"type": "object",
"properties": {
"txHash": {
"type": "string"
},
"txNonce": {
"type": "integer",
"format": "int64"
},
"chainId": {
"type": "string"
}
}
},
"depositTransferData": {
"type": "object",
"properties": {
"sender": {
"type": "string"
},
"receiver": {
"type": "string"
},
"depositAmount": {
"type": "string"
},
"withdrawalAmount": {
"type": "string"
},
"depositAsset": {
"type": "string"
},
"withdrawalAsset": {
"type": "string"
},
"isWrappedAsset": {
"type": "boolean"
},
"depositBlock": {
"type": "string",
"format": "int64"
},
"signature": {
"type": "string",
"title": "used for EVM transfers"
}
}
},
"depositWithdrawalIdentifier": {
"type": "object",
"properties": {
"txHash": {
"type": "string"
},
"chainId": {
"type": "string"
}
}
},
"depositWithdrawalStatus": {
"type": "string",
"enum": [
"WITHDRAWAL_STATUS_UNSPECIFIED",
"WITHDRAWAL_STATUS_PENDING",
"WITHDRAWAL_STATUS_PROCESSING",
"WITHDRAWAL_STATUS_PROCESSED",
"WITHDRAWAL_STATUS_FAILED",
"WITHDRAWAL_STATUS_INVALID"
],
"default": "WITHDRAWAL_STATUS_UNSPECIFIED"
},
"protobufAny": {
"type": "object",
"properties": {
"@type": {
"type": "string",
"description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
}
},
"additionalProperties": {},
"description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }"
},
"rpcStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/protobufAny"
}
}
}
}
}
}
5 changes: 5 additions & 0 deletions api/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package api

import "embed"

var Docs embed.FS
8 changes: 8 additions & 0 deletions assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# /assets

## Description
Contains the assets for the project

## Components
- `/migrations`: Contains the database migration `.sql` scripts;
- `/templates`: Contains the templates for the project;
8 changes: 8 additions & 0 deletions assets/assets.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package assets

import (
"embed"
)

//go:embed migrations/*.sql
var Migrations embed.FS
Loading