OIP042 Patch Notes
Contents
- 1 Version bump on all methods to OIP042 (note the removal of the hyphen)
- 2 For OIP Artifacts, type is now 2 variables, type, and subtype (before it was encoded as one variable but "type-subtype")
- 3 Add "Scientific" Artifact type
- 4 Add Short Multiwallet Address support to files
- 5 Add "coins" variable to the Payment JSON structure of Artifacts
- 6 Modify Multipart message format to include versioning & data type info
- 7 Changes to Edit, Register, Deactivate messages to make them more similar/the same
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!
{ "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!
{ "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!
{ "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" } } }