{"id":13392956,"url":"https://github.com/fox-one/4swap-sdk-go","last_synced_at":"2025-04-19T18:12:49.778Z","repository":{"id":37982281,"uuid":"295285308","full_name":"fox-one/4swap-sdk-go","owner":"fox-one","description":"4swap go sdk","archived":false,"fork":false,"pushed_at":"2024-10-15T14:34:21.000Z","size":214,"stargazers_count":17,"open_issues_count":0,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-01T09:42:40.382Z","etag":null,"topics":["go","mixin","swap","uniswap"],"latest_commit_sha":null,"homepage":"https://github.com/fox-one/4swap-sdk-go/blob/master/docs/api.md","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fox-one.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-09-14T02:42:24.000Z","updated_at":"2024-10-15T14:35:57.000Z","dependencies_parsed_at":"2023-12-13T04:29:25.160Z","dependency_job_id":"a9e7e3ae-bc8e-402a-aa8a-87651e9b5618","html_url":"https://github.com/fox-one/4swap-sdk-go","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2F4swap-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2F4swap-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2F4swap-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2F4swap-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fox-one","download_url":"https://codeload.github.com/fox-one/4swap-sdk-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249760135,"owners_count":21321843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["go","mixin","swap","uniswap"],"created_at":"2024-07-30T17:00:40.049Z","updated_at":"2025-04-19T18:12:49.741Z","avatar_url":"https://github.com/fox-one.png","language":"Go","funding_links":[],"categories":["SDK"],"sub_categories":["Related Libraries"],"readme":"# 4swap SDK go\n\n## 4swap\n\n[4swap](https://4swap.org) is a decentralized protocol implement for automated liquidity provision on [Mixin Network](https://mixin.one)\n\n## Install\n\n```bash\ngo get github.com/fox-one/4swap-sdk-go/v2\n```\n\n### Authorization\n\n4swap supports two kinds of access tokens:\n\n1. the access token that complete the OAuth flow at 4swap's webpage: https://app.4swap.org\n2. the access token that generated by your own Mixn Application. The token should sign the URL **/me** and the scope should be \"FULL\". Please read this [document](https://developers.mixin.one/docs/dapp/guide/generate-jwt-token) for more details.\n\n### Example\n\n```golang\nfunc TestPreOrder(t *testing.T) {\n    ctx := context.Background()\n\n    c := New()\n    c.UseToken(\"your auth token\")\n    \n    pairs, err := c.ListPairs(ctx)\n    if err != nil {\n        t.Fatal(err)\n    }\n    \n    req := \u0026PreOrderReq{\n        PayAssetID:  \"4d8c508b-91c5-375b-92b0-ee702ed2dac5\",\n        FillAssetID: \"31d2ea9c-95eb-3355-b65b-ba096853bc18\",\n        PayAmount:   decimal.NewFromFloat(0.1),\n    }\n    \n    preOrder, err := PreOrderWithPairs(pairs, req)\n    if err != nil {\n        t.Fatal(err)\n    }\n    \n    t.Logf(\"fill amount: %s\", preOrder.FillAmount)\n    \n    followID := uuid.NewString()\n    minAmount := preOrder.FillAmount.Mul(decimal.NewFromFloat(0.99)).Truncate(8)\n    memo := BuildSwap(followID, req.FillAssetID, preOrder.Paths, minAmount)\n    \n    t.Logf(\"memo: %s\", memo)\n    \n    group, err := c.ReadGroup(ctx)\n    if err != nil {\n        t.Fatal(err)\n    }\n    \n    t.Logf(\"target mix address: %s\", group.MixAddress)\n    \n    transfer := \u0026mixin.TransferInput{\n        AssetID:    req.PayAssetID,\n        OpponentID: group.MixAddress,\n        Amount:     req.PayAmount,\n        TraceID:    followID,\n        Memo:       memo,\n    }\n    \n    t.Log(mixin.URL.SafePay(transfer))\n    \n    // transfer pay asset to mix address\n    \n    // view order detail\n    order, err := c.ReadOrder(ctx, followID)\n    if err != nil {\n        assert.True(t, IsErrorCode(err, 401))\n    } else {\n        t.Logf(\"order state: %s\", order.State)\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffox-one%2F4swap-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffox-one%2F4swap-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffox-one%2F4swap-sdk-go/lists"}