Términos y Condiciones del sitio web de sucesión en línea con tecnología blockchain:
1. Introducción:
Bienvenido al sitio web de sucesión en línea con tecnología blockchain. Estos Términos y Condiciones regulan el acceso y el uso de nuestro sitio web, así como la utilización de nuestros servicios. Al acceder y utilizar nuestro sitio web, aceptas estos Términos y Condiciones. Si no estás de acuerdo con estos Términos y Condiciones, no podrás utilizar nuestro sitio web ni nuestros servicios.
2. Servicios ofrecidos:
Nuestro sitio web ofrece servicios en línea relacionados con el proceso de sucesión online y tokenización de instrucciones de ejecución del legado digital, utilizando tecnología blockchain para garantizar la seguridad, la transparencia y la eficiencia del proceso. Los servicios ofrecidos en nuestro sitio web incluyen, entre otros, la gestión y el seguimiento del proceso de sucesión, la asignación de herencias, la validación de identidad de los usuarios y la creación de contratos inteligentes.
3.Validación de información y documentos:
Toda la información y documentación proporcionada durante el proceso de registro y la utilización de nuestros servicios será revisada y validada por nuestro equipo legal. Si se identifican anomalías, inconsistencias o inexactitudes en la información o la documentación enviada, nos reservamos el derecho de no procesar la solicitud y de negar el acceso a nuestros servicios.
4. Registro y acceso al sitio web:
Para utilizar nuestros servicios, debes registrarte en nuestro sitio web y proporcionar información precisa y completa. Debes ser mayor de edad y tener capacidad legal para aceptar estos Términos y Condiciones y utilizar nuestros servicios. Nos reservamos el derecho de rechazar el registro de cualquier usuario y de suspender o cancelar el acceso a nuestros servicios en cualquier momento y sin previo aviso.
5. Propiedad intelectual:
Todo el contenido y los materiales disponibles en nuestro sitio web, incluyendo, entre otros, el diseño, la estructura, el código fuente, las imágenes, los textos, las marcas comerciales y los logotipos, son propiedad exclusiva de nuestro sitio web o de nuestros socios comerciales y están protegidos por las leyes de propiedad intelectual aplicables. No se permite la reproducción, distribución, modificación, exhibición pública o uso no autorizado de ninguno de los materiales o contenido de nuestro sitio web sin nuestro consentimiento previo y por escrito.
6. Protección de datos personales:
Protegemos tu privacidad y tus datos personales de acuerdo con nuestra Política de Privacidad, que forma parte integral de estos Términos y Condiciones. Al utilizar nuestros servicios, aceptas nuestra Política de Privacidad y nos autorizas a procesar tus datos personales de acuerdo con la misma.
7. Limitación de responsabilidad:
Nuestro sitio web y nuestros servicios se ofrecen «tal cual» y «según disponibilidad». No garantizamos que nuestro sitio web o nuestros servicios sean ininterrumpidos, seguros o libres de errores. En ningún caso seremos responsables por ningún daño indirecto, especial, incidental, consecuencial o punitivo que se derive del uso o la imposibilidad de uso de nuestro sitio web o nuestros servicios, incluyendo, entre otros, la pérdida de beneficios, la pérdida de datos o la interrupción del negocio.
8. Jurisdicción y leyes aplicables:
Únicamente territorio de Guatemala, las disputas serán resueltas en tribunales guatemaltecos.
9. Responsabilidad del usuario:
Los usuarios deberán comprometerse a no utilizar el sitio web o los servicios de manera fraudulenta, ilegal o que viole los derechos de terceros.
10. Cancelación o suspensión del servicio:
En caso de violar los términos y condiciones, actividad fraudulenta o incumplimiento de los requisitos legales aplicables, su cuenta será suspendida.
11. Cumplimiento de leyes locales:
Incluye una cláusula que indique que el usuario es responsable de cumplir con todas las leyes locales aplicables en relación con el uso del sitio web y los servicios.
12. Indemnización:
El usuario indemnizará y eximirá de responsabilidad al sitio web, sus directores, empleados y socios, por cualquier reclamo, pérdida, daño, responsabilidad o gasto (incluidos los honorarios legales) que surjan del uso indebido del sitio web o de los servicios por parte del usuario o de la violación de estos Términos y Condiciones.
¡Seguimos sumando esfuerzos para llegar y tener cobertura al país donde te encuentras!
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
/**
* @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including
* the Metadata extension, but not including the Enumerable extension, which is available separately as
*/
contract TheSmartHeritage is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {
using Counters for Counters.Counter;
}
Counters.Counter private _tokenIdCounter;
constructor() ERC721("CloneX", "CloneX") {
_tokenIdCounter.increment(); // Making sure we start at token ID 1
}
event TheSmartLegacyRevealed(uint256 tokenId, string fileId); // Sending the event for offchain script to transform the right file
address randomizerAddress; // Approved randomizer contract
address mintvialAddress; // Approved mintvial contract
string public _tokenUri = "https://clonex-assets.rtfkt.com/"; // Initial base URI
bool public contractLocked = false;
function mintTransfer(address to) public returns(uint256) {
require(msg.sender == mintvialAddress, "Not authorized");
TheSmartLegacyRandomizer tokenAttribution = CloneXRandomizer(randomizerAddress);
string memory realId = tokenAttribution.getTokenId(_tokenIdCounter.current());
uint256 mintedId = _tokenIdCounter.current();
_safeMint(to, _tokenIdCounter.current());
emit TheSmartHeritageRevealed(_tokenIdCounter.current(), realId);
_tokenIdCounter.increment();
return mintedId;
}
// Token symbol
string private _symbol;
// Change the randomizer address contract
function setRandomizerAddress(address newAddress) public onlyOwner {
randomizerAddress = newAddress;
}
// Change the mintvial address contract
function setMintvialAddress(address newAddress) public onlyOwner {
mintvialAddress = newAddress;
}
function secureBaseUri(string memory newUri) public onlyOwner {
require(contractLocked == false, "Contract has been locked and URI can't be changed");
_tokenUri = newUri;
}
function lockContract() public onlyOwner {
contractLocked = true;
}
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
super._burn(tokenId);
}
function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) {
return super.tokenURI(tokenId);
}
function supportsInterface(bytes4 interfaceId) public view override(ERC721, ERC721Enumerable) returns (bool) {
return super.supportsInterface(interfaceId);
}
}