Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion cmd/plex/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func Run(toolPath, inputDir, ioJsonPath, workDir string, verbose, retry, local,
// mint an NFT if web3 flag is set
if web3 {
fmt.Println("Minting NFT...")
web3pkg.MintNFT(toolPath, ioJsonPath)
web3pkg.MintNFT(ioJsonPath)
return
}

Expand Down
33 changes: 18 additions & 15 deletions internal/web3/nft.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,26 +35,14 @@ func removeFilepathKeys(obj map[string]interface{}) {
}
}

func buildTokenMetadata(toolPath, ioPath string) (string, error) {
toolBytes, err := ioutil.ReadFile(toolPath)
if err != nil {
return "", fmt.Errorf("error reading tool file: %v", err)
}

func buildTokenMetadata(ioPath string) (string, error) {
ioBytes, err := ioutil.ReadFile(ioPath)
if err != nil {
return "", fmt.Errorf("error reading io file: %v", err)
}

var toolMap map[string]interface{}
var ioMap []map[string]interface{}

err = json.Unmarshal(toolBytes, &toolMap)
if err != nil {
return "", fmt.Errorf("error unmarshaling tool file: %v", err)
}
removeFilepathKeys(toolMap)

err = json.Unmarshal(ioBytes, &ioMap)
if err != nil {
return "", fmt.Errorf("error unmarshaling io file: %v", err)
Expand All @@ -69,6 +57,21 @@ func buildTokenMetadata(toolPath, ioPath string) (string, error) {
graphs := []map[string]interface{}{}

for _, ioEntry := range ioMap {
// Read tool file for each ioEntry
toolPath := ioEntry["tool"].(string)
toolBytes, err := ioutil.ReadFile(toolPath)
if err != nil {
return "", fmt.Errorf("error reading tool file: %v", err)
}

var toolMap map[string]interface{}
err = json.Unmarshal(toolBytes, &toolMap)
if err != nil {
return "", fmt.Errorf("error unmarshaling tool file: %v", err)
}

removeFilepathKeys(toolMap)

graph := map[string]interface{}{
"tool": toolMap,
"inputs": ioEntry["inputs"],
Expand All @@ -94,7 +97,7 @@ func buildTokenMetadata(toolPath, ioPath string) (string, error) {
return string(tokenMetadata), nil
}

func MintNFT(toolPath, ioJsonPath string) {
func MintNFT(ioJsonPath string) {
if recipientWallet == "" {
fmt.Println("RECIPIENT_WALLET must be set")
os.Exit(1)
Expand All @@ -107,7 +110,7 @@ func MintNFT(toolPath, ioJsonPath string) {

// Build NFT metadata
fmt.Println("Preparing NFT metadata...")
metadata, err := buildTokenMetadata(toolPath, ioJsonPath)
metadata, err := buildTokenMetadata(ioJsonPath)
if err != nil {
fmt.Println("Error:", err)
os.Exit(1)
Expand Down