예제 #1
0
 def add_items(self, params):
     sp.verify(self.data.certifiers.contains(params.id), message ='Certifier with ID non-existent')
     sp.verify_equal(sp.sender, self.data.certifiers[params.id], message ="This account may be expired, use different account.")
     
     sp.for product in params.products.items():
         sp.if self.data.products.contains(product.key):
             sp.verify_equal(params.id, self.data.products[product.key].certifier, message ="This product has already been registered by another certifier institution.")
             self.data.products[product.key].metahash.push(product.value)
예제 #2
0
 def placeBet(self,params):
     sp.verify(self.data.betData.contains(params.betType), message="incorrect bet type")
     sp.verify_equal(sp.amount,sp.mutez(self.data.betSize[params.betType]),message="incorrect amount sent to the entry point")
     # multiplied seed by 10000 to retain last 6 digits of timestamp
     uuid = self.data.uuid
     self.data.uuid = self.data.uuid+1
     self.data.tempData[uuid] = sp.record(seed=params.seed,sender=sp.sender,betType=params.betType)
     entryAddress = sp.to_address(sp.self_entry_point(entry_point='placeBetFromOro'))
     contract = sp.contract(sp.TRecord(uuid=sp.TNat,entryAddress=sp.TAddress),self.data.oracleAddress,entry_point="getDataFromOro").open_some()
     sp.transfer(sp.record(uuid=uuid,entryAddress=entryAddress),sp.mutez(5000),contract)
예제 #3
0
 def setExpiry(self, params):
     sp.set_type(params, sp.TRecord(address=sp.TAddress, seconds=sp.TNat, permit=sp.TOption(
         sp.TBytes))).layout(("address", ("seconds", "permit")))
     sp.verify(~self.data.paused)
     sp.verify(params.seconds <= self.data.max_expiry, "MAX_SECONDS_EXCEEDED")
     sp.verify_equal(params.address, sp.sender, message="NOT_AUTHORIZED")
     sp.if params.permit.is_some():
         some_permit = params.permit.open_some()
         sp.verify(self.data.permits.contains(
             sp.pair(params.address, some_permit)), "PERMIT_NONEXISTENT")
         permit_submission_timestamp = self.data.permits[sp.pair(
             params.address, some_permit)]
         sp.if self.data.permit_expiries.contains(sp.pair(params.address, some_permit)) & self.data.permit_expiries[sp.pair(params.address, some_permit)].is_some():
             permit_expiry = self.data.permit_expiries[sp.pair(
                 params.address, some_permit)].open_some()
             sp.verify(sp.as_nat(sp.now - permit_submission_timestamp)
                       < permit_expiry, "PERMIT_REVOKED")
예제 #4
0
 def setExpiry(self, params):
     sp.set_type(params, sp.TPair(sp.TAddress, sp.TPair(sp.TNat, sp.TOption(
         sp.TBytes))))
     address = sp.fst(params)
     new_expiry = sp.fst(sp.snd(params))
     possible_bytes = sp.snd(sp.snd(params))
     sp.verify(new_expiry <= self.data.permit_data.max_expiry, self.error_message.expiry_exceeds_max())
     sp.verify_equal(address, sp.sender, message=self.error_message.user_unauthorized())
     sp.if possible_bytes.is_some():
         some_permit = possible_bytes.open_some()
         permit_key = sp.pair(address, some_permit)
         sp.verify(self.data.permit_data.permits.contains(
             permit_key), self.error_message.permit_nonexistent())
         permit_submission_timestamp = self.data.permit_data.permits[permit_key]
         effective_expiry = self.getEffectiveExpiry(permit_key)
         sp.verify(sp.as_nat(sp.now - permit_submission_timestamp)
             < effective_expiry, self.error_message.permit_revoked())
         self.data.permit_data.permit_expiries[permit_key] = sp.some(new_expiry)
예제 #5
0
 def assert_spare(self):
     sp.verify_equal(self.data.spare, sp.sender, 'Invalid Spare!')
예제 #6
0
 def assert_admin(self):
     sp.verify_equal(self.data.admin, sp.sender, 'Invalid Admin!')
예제 #7
0
 def change_manager(self, params):
     sp.verify_equal(sp.sender, self.data.spare, message ="Unauthorized account. Only spare can peform this action.")
     
     self.data.manager = params.manager
예제 #8
0
 def assert_manager(self):
     sp.verify_equal(sp.sender, self.data.manager, message ="Unauthorized account. Only manager can peform this action.")
예제 #9
0
 def remove_registrar(self, params):
     
     sp.verify_equal(sp.sender, self.data.manager, message="Unauthorized Action. You are not manager.")
     
     self.data.registrars.remove(params.registrar)