#0
nonstandard
Q!¤EÐÚi
ò×Zz;Tæ±Â¯¤09ËþÚ"9/¨MnSQ®M}{"state":1,"__cls":"class VaccineToken {\n constructor(to, supply, previousOwners, options, isDistributed) {\n this.contractTypeID = \"393f0d5f-c3bb-4871-b9fb-b47f4b7ababf\";\n this.contractTypeName = \"VaccineToken\";\n this.contractTypeVersion = \"0.0.2\";\n //_owners/to must be an array passed in\n this._owners = to;\n this.coins = supply;\n this.previousOwners = previousOwners;\n this._amount = parseInt(options[\"amount\"], 10);\n // this.adminPKs = options[\"adminPKs\"];\n // this.revokePK = options[\"revokePK\"];\n // this.vial_data = options[\"vial_data\"];\n // this.ndc = options[\"ndc\"];\n // this.lot_id = options[\"lot_id\"];\n // this.manufacturer = options[\"manufacturer\"];\n // this.lot_expiration = options[\"lot_expiration\"];\n // this.patientPK = options[\"patientPK\"];\n // this.providerPK = options[\"providerPK\"];\n // this.country = options[\"country\"];\n // this.state = options[\"state\"];\n // this.postal_code = options[\"postal_code\"];\n // this.distributed_on = options[\"distributed_on\"];\n // this.adminstration_business_id = options[\"adminstration_business_id\"];\n // this.employee_id = options[\"employee_id\"];\n // this.practitioner_license_id = options[\"practitioner_license_id\"];\n this.distributed = isDistributed;\n this.fundingRequested = false;\n this.state = options;\n }\n\n addOwner(pubKey){\n this._owners.push(pubKey);\n }\n\n requestFunds() {\n this.fundingRequested = true;\n }\n\n fund(satoshisToAdd) {\n this._amount += satoshisToAdd;\n this.fundingRequested = false;\n }\n\n drain(pubKey) {\n if (!this.adminPKs.includes(pubKey)) {\n throw new Error(\"You do not have persmission to drain this token.\");\n }\n this._amount = 0;\n return \"Successfully Drained.\";\n }\n\n send(to, amount, options) {\n if (this.coins < amount) throw new Error(\"Insufficient Token Count.\");\n this.coins -= amount;\n let previousOwners = this._owners;\n return new VaccineToken([to], amount, previousOwners, options, false);\n }\n\n distribute(owners, options) {\n if (this.coins == 0) throw new Error(\"Insufficient Token Count.\");\n this.coins -= 1;\n return new VaccineToken(owners, 1, this.previousOwners, options, true);\n }\n\n revoke(pubKey) {\n if (this._owners.includes(pubKey)) this.owners = [this.revokePK];\n else throw new Error(\"You do not have permission to revoke this token.\");\n }\n}","__index":{"obj":0},"__func":"constructor","__args":[["03a445d0da690af2d75a7a3b54e6b1c2afa489303989cbfe1dda22392fa84d6e53"],1000,[],{"amount":100000,"adminPKs":[],"revokePK":"","vial_data":"","ndc":"","lot_id":"","manufacturer":"","lot_expiration":"","patientPK":"","providerPK":"","country":"","state":"","postal_code":"","distributed_on":"","adminstration_business_id":"","employee_id":"","practitioner_license_id":""},false]}u
https://whatsonchain.com/tx/589a21d5551c31cb890214e760debd008a6ca3388513ca6ff3b2e21cfca0e3c2