Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
github.com/clubnft/magic-admin-go
The Magic Admin Golang SDK provides convenient ways for developers to interact with Magic API endpoints and an array of utilities to handle DID Token.
See the Magic doc!
The SDK requires Golang 1.13+
and Go Modules. To make sure your project is using Go Modules, you can look for go.mod
file in your project's root directory. If it exits, then you are already using the Go Modules. If not, you can follow this guide to migrate to Go Modules.
Simply reference magic-admin-go
in a Go program with an import
of the SDK:
import (
...
"github.com/ClubNFT/magic-admin-go"
...
)
Run any of the normal go
commands (ex: build
/install
). The Go toolchain will take care of fetching the SDK automatically.
Alternatively, you can explicitly go get
the package into a project:
go get github.com/ClubNFT/magic-admin-go
Command line utility is created for testing purposes and can be used for decoding and validating DID tokens. It also provides functionality to retrieve user info.
You can simply install it by the command:
go install github.com/ClubNFT/magic-admin-go/cmd/magic-cli
Current available command supported:
$ magic-cli -h
NAME:
magic-cli - command line utility to make requests to api and validate tokens
USAGE:
magic-cli [global options] command [command options] [arguments...]
COMMANDS:
token, t magic-cli token [decode|validate] --did <DID token>
user, u magic-cli -s <secret> user --did <DID token>
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--secret value, -s value Secret token which will be used for making request to backend api [$MAGIC_API_SECRET_KEY]
--help, -h show help (default: false)
Before you start, you will need an API secret key. You can get one from the Magic Dashboard. Once you have the API secret key, you can instantiate a Magic object.
Sample code to retrieve user info by a DID token:
package main
import (
"log"
"fmt"
"github.com/ClubNFT/magic-admin-go"
"github.com/ClubNFT/magic-admin-go/client"
)
func main() {
m := client.New("<YOUR_API_SECRET_KEY>", magic.NewDefaultClient())
userInfo, err := m.User.GetMetadataByToken("<DID_TOKEN>")
if err != nil {
log.Fatalf("Error: %s", err.Error())
}
fmt.Println(userInfo)
}
Sample code to validate a DID token and retrieve the claim
and proof
from the token:
package main
import (
"log"
"fmt"
"github.com/ClubNFT/magic-admin-go/token"
)
func main() {
tk, err := token.NewToken("<DID_TOKEN>")
if err != nil {
log.Fatalf("DID token is malformed: %s", err.Error())
}
if err := tk.Validate(); err != nil {
log.Fatalf("DID token is invalid: %v", err)
}
fmt.Println(tk.GetClaim())
fmt.Println(tk.GetProof())
}
The NewClientWithRetry
method creates a client with retries
, retryWait
, timeout
options. NewClientWithRetry
returns a *resty.Client
instance which can be used with the Magic client.
cl := magic.NewClientWithRetry(5, time.Second, 10 * time.Second)
m := client.New("<YOUR_API_SECRET_KEY>", cl)
We would love to have you contribute to the SDK. To get started, you will need to clone this repository and fetch the dependencies.
To run the existing tests:
make test
To build and install magic-cli utility tool, you can run:
make install
To build magic-cli utility tool separately as a binary, you can run:
make build
Please also see our CONTRIBUTING guide for more information.
See Changelog
See License
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.