OIP042 Patch Notes

From OIP Wiki
Jump to: navigation, search

Version bump on all methods to OIP042 (note the removal of the hyphen)

Before

 {
 	"oip-041": { }
 }

After

 {
 	"oip042": { }
 }

For OIP Artifacts, type is now 2 variables, type, and subtype (before it was encoded as one variable but "type-subtype")

Before

 {
 	"oip-041": {
 		"artifact": {
 			"type": "type-subtype"
 		}
 	}
 }

After

 {
 	"oip042": {
 		"artifact": {
 			"type": "type",
 			"subtype": "subtype"
 		}
 	}
 }

Add "Scientific" Artifact type

New!

New icon flashing.gif
 {
 	"oip042": {
 		"artifact": {
 			"type": "Scientific",
 			"subtype": "Tomograph||Paper"
 		}
 	}
 }

Add Short Multiwallet Address support to files

This is done by adding the variable `shortMW` to any `file` object (usually stored at artifact.storage.files[i].shortMW). The Short Multiwallet Address is comprised of the base64 encoded raw Public Key Buffer. This way the address can be encoded to support any/all coin types specified.

New!

New icon flashing.gif
 {
 	"oip042": {
 		"artifact": {
 			"storage":{
 				"files": [{
 					"shortMW": "base64 encoded raw Public Key"
 				}]
 			}
 		}
 	}
 }

Add "coins" variable to the Payment JSON structure of Artifacts

"coins" should be an array of 3 character supported coins (i.e. ["btc", "flo", "ltc"]) that the Publisher wishes to accept.

New!

New icon flashing.gif
 {
 	"oip042": {
 		"artifact": {
 			"payment":{
 				"coins": ["btc", "ltc", "flo"]
 			}
 		}
 	}
 }

Modify Multipart message format to include versioning & data type info

Before

oip-mp($partNumber, $multipartArrayLength, $publisherAddress, $firstPartTXID, $signature):$choppedStringData

After

oipmp($partNumber, $multipartArrayLength, $publisherAddress, $firstPartTXID, $signature):$contentType:$choppedStringData

$contentType in this case would normally be json

:$contentType should only be included on $partNumber 0, on all other parts, it should be omitted.

Changes to Edit, Register, Deactivate messages to make them more similar/the same

Publisher

Publisher Register

 {
 	"oip042": {
 		"register": {
 			"pub": {
 				"alias": "$PublisherAlias",
 				"address": "$PublisherAddress",
 				"timestamp": $UnixTime,
 				"authorized": ["$AuthorizedPublisherAddress1", "$AuthorizedPublisherAddress2"],
 				"extraInfo": {
 					"emailmd5": "$md5HashOfEmail",
 					"avatarNetwork": "$IPFSorBittorrentorHTTP",
 					"avatar": "$NetworkAddressOfAvatarImage",",
 					"headerImageNetwork": "$NetworkAddressOfHeaderImage",",
 					"headerImage": "$NetworkAddressOfHeaderImage",
 					"bitmessage": "$bitmessageAddress"
 				},
 				"verification": {
 					"IMDB": "$IMDBArtistUrl",
 					"MusicBrainz": "$MusicBrainzArtistURL",
 					"Twitter": "$TwitterVerificationURL",
 					"Facebook": "$FacebookVerificationURL"
 				}
 			},
 			"signature": "$RegisterPublisherSignature"
 		}
 	}
 }

Publisher Edit

 {
 	"oip042": {
 		"edit": {
 			"pub": {
 				"address": "$PublisherAddress",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditPublisherSignature"
 		}
 	}
 }
 

Publisher Transfer

 {
 	"oip042": {
 		"transfer": {
 			"pub": {
 				"address": "$PublisherAddress",
 				"to": "$NewPublisherOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferPublisherSignature"
 		}
 	}
 }
 

Publisher Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"pub": {
 				"address": "$PublisherAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivatePublisherSignature"
 		}
 	}
 }
 

Artifact

Artifact Publish

 {
 	"oip042": {
 		"publish": {
 			"artifact": {
 				// Same as OIP-041.artifact before (with other outlined changes)
 			}
 		}
 	}
 }
 

Artifact Edit

 {
 	"oip042": {
 		"edit": {
 			"artifact": {
 				"txid": "$ArtifactTXID",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditArtifactSignature"
 		}
 	}
 }
 

Artifact Transfer

 {
 	"oip042": {
 		"transfer": {
 			"artifact": {
 				"txid": "$ArtifactTXID",
 				"to": "$NewPublisherOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferArtifactSignature"
 		}
 	}
 }
 

Artifact Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"artifact": {
 				"txid": "$ArtifactTXID",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivateArtifactSignature"
 		}
 	}
 }
 

Retailer

Retailer Register

 {
 	"oip042": {
 		"register": {
 			"retailer": {
 				"alias": "$RetailerAlias",
 				"timestamp": $UnixTime,
 				"address": "$MainRetailerFloAddress",
 				"addresses": {
 					"shortMW": "$ShortMultiwalletAddress",
 					"florincoin": "$RetailerFLOAddress",
 					"bitcoin": "$RetailerBitcoinAddress",
 					"litecoin": "$RetailerLitecoinAddress"
 				},
 				"coins": ["btc", "ltc", "flo"], // Only included if Retailer is using a ShortMultiwalletAddress
 				"extraInfo": {
 					"minimum-share": $MinimumDesiredShare
 				},
 				"verification": {
 					"Twitter": "$TwitterVerificationURL",
 					"Facebook": "$FacebookVerificationURL"
 				}
 			},
 			"signature": "$RegisterRetailerSignature"
 		}
 	}
 }
 

Retailer Edit

 {
 	"oip042": {
 		"edit": {
 			"retailer": {
 				"address": "$MainRetailerFloAddress",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditRetailerSignature"
 		}
 	}
 }
 

Retailer Transfer

 {
 	"oip042": {
 		"transfer": {
 			"retailer": {
 				"address": "$MainRetailerFloAddress",
 				"to": "$NewRetailerOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferRetailerSignature"
 		}
 	}
 }
 

Retailer Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"retailer": {
 				"address": "$MainRetailerFloAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivateRetailerSignature"
 		}
 	}
 }
 

Promoter

Promoter Register

 {
 	"oip042": {
 		"register": {
 			"promoter": {
 				"timestamp": $UnixTime,
 				"address": "$MainPromoterFloAddress",
 				"version": 2,
 				"addresses": {
 					"shortMW": "$ShortMultiwalletAddress",
 					"florincoin": "$PromoterFLOAddress",
 					"bitcoin": "$PromoterBitcoinAddress",
 					"litecoin": "$PromoterLitecoinAddress"
 				},
 				"coins": ["btc", "ltc", "flo"], // Only included if Promoter is using a ShortMultiwalletAddress
 				"extraInfo": {
 					"name": "$PromoterName"
 				},
 				"verification": {
 					"Twitter": "$TwitterVerificationURL",
 					"Facebook": "$FacebookVerificationURL"
 				}
 			},
 			"signature": "$RegisterPromoterSignature"
 		}
 	}
 }
 

Promoter Edit

 {
 	"oip042": {
 		"edit": {
 			"promoter": {
 				"address": "$MainPromoterFloAddress",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditPromoterSignature"
 		}
 	}
 }
 

Promoter Transfer

 {
 	"oip042": {
 		"transfer": {
 			"promoter": {
 				"address": "$MainPromoterFloAddress",
 				"to": "$NewPromoterOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferPromoterSignature"
 		}
 	}
 }
 

Promoter Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"promoter": {
 				"address": "$MainPromoterFloAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivatePromoterSignature"
 		}
 	}
 }
 

Autominer

Autominer Register

 {
 	"oip042": {
 		"register": {
 			"autominer": {
 				"timestamp": $UnixTime,
 				"address": "$MainAutominerFloAddress",
 				"version": 2,
 				"addresses": {
 					"shortMW": "$ShortMultiwalletAddress",
 					"florincoin": "$AutominerFLOAddress",
 					"bitcoin": "$AutominerBitcoinAddress",
 					"litecoin": "$AutominerLitecoinAddress"
 				},
 				"coins": ["btc", "ltc", "flo"], // Only included if Autominer is using a ShortMultiwalletAddress
 				"extraInfo": {
 					"name": "$RetailerName",
 					"url": "$AutominerEndpointURL"
 				}
 			},
 			"signature": "$RegisterAutominerSignature"
 		}
 	}
 }
 

Autominer Edit

 {
 	"oip042": {
 		"edit": {
 			"autominer": {
 				"address": "$MainAutominerFloAddress",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditAutominerSignature"
 		}
 	}
 }
 

Autominer Transfer

 {
 	"oip042": {
 		"transfer": {
 			"autominer": {
 				"address": "$MainAutominerFloAddress",
 				"to": "$NewAutominerOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferAutominerSignature"
 		}
 	}
 }
 

Autominer Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"autominer": {
 				"address": "$MainAutominerFloAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivateAutominerSignature"
 		}
 	}
 }
 

Autominer Pool

Autominer Pool Register

 {
 	"oip042": {
 		"register": {
 			"autominerPool": {
 				"timestamp": $UnixTime,
 				"address": "$MainAutominerPoolFloAddress",
 				"TargetMargin": "$TargetMargin",
 				"PoolShare": $PoolShare,
 				"version": 2,
 				"addresses": {
 					"shortMW": "$ShortMultiwalletAddress",
 					"florincoin": "$AutominerPoolFLOAddress",
 					"bitcoin": "$AutominerPoolBitcoinAddress",
 					"litecoin": "$AutominerPoolLitecoinAddress"
 				},
 				"coins": ["btc", "ltc", "flo"], // Only included if Autominer Pool is using a ShortMultiwalletAddress
 				"extraInfo": {
 					"name": "$AutominerPoolName",
 					"url": "$EndpointURL"
 				},
 				"verification": {
 					"Twitter": "$TwitterVerificationURL",
 					"Facebook": "$FacebookVerificationURL"
 				}
 			},
 			"signature": "$RegisterAutominerPoolSignature"
 		}
 	}
 }
 

Autominer Pool Edit

 {
 	"oip042": {
 		"edit": {
 			"autominerPool": {
 				"address": "$MainAutominerPoolFloAddress",
 				"timestamp": $UnixTime,
 				"patch": {
 					// Squashed Edit of JSON Patch Schema https://tools.ietf.org/html/rfc6902
 				}
 			},
 			"signature": "$EditAutominerPoolSignature"
 		}
 	}
 }
 

Autominer Pool Transfer

 {
 	"oip042": {
 		"transfer": {
 			"autominerPool": {
 				"address": "$MainAutominerPoolFloAddress",
 				"to": "$NewRetailerOwnerAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$TransferAutominerPoolSignature"
 		}
 	}
 }
 

Autominer Pool Deactivate

 {
 	"oip042": {
 		"deactivate": {
 			"autominerPool": {
 				"address": "$MainAutominerPoolFloAddress",
 				"timestamp": $UnixTime
 			},
 			"signature": "$DeactivateAutominerPoolSignature"
 		}
 	}
 }