
En las publicaciones anteriores del tutorial de Python, presenté el Contrato inteligente de ontología en
Parte 1: Blockchain y Block API y
Parte 2: API de almacenamientoParte 3: API de tiempo de ejecuciónParte 4: API nativa y describe cómo usar contratos inteligentes para la transferencia ONT / ONG.
Hoy hablaremos sobre cómo usar la
API de actualización para actualizar el contrato inteligente. Hay 2 API:
destruir y
migrar .
Se usan de la siguiente manera:

Ahora veamos más detalles sobre cómo usar estas 2 API. Antes de eso, puede crear un nuevo contrato en la herramienta de desarrollo de contratos inteligentes Ontology
SmartX y seguir las instrucciones a continuación. Como de costumbre, al final del artículo, adjuntaré el enlace al código fuente.
Cómo usar la API de actualización
Como de costumbre, debe importar las 2 funciones de la siguiente manera antes de usarlas.
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Contract import Destroy
Destruir API
Destroy API se utiliza para destruir y eliminar un contrato inteligente en la cadena. A continuación se muestra una muestra de código de la API.
from ontology.interop.System.Contract import Destroy from ontology.interop.System.Runtime import Notify def Main(operation, args): if operation == "destroy_contract": return destroy_contract() return False def destroy_contract(): Destroy() Notify(["The contract has been destoryed"]) return True
Migrar API
La API de Migrate se utiliza para migrar contratos inteligentes. El contrato existente será reemplazado por el contrato recién migrado. Los datos guardados por el antiguo contrato también se migrarán al nuevo contrato. El antiguo contrato se eliminará después de la migración.
Tenga en cuenta que los activos del contrato inteligente no se migrarán automáticamente, por lo que debe transferirlos con anticipación. De lo contrario, no podrá recuperar sus activos.
La lista de parámetros de la función Migrar es la siguiente:

Vea a continuación el ejemplo de código de la función Migrar:
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Runtime import Notify from ontology.libont import AddressFromVmCode def Main(operation, args): if operation == "migrate_contract": if len(args) != 7: return False avm_code = args[0] need_storage = args[1] name = args[2] version = args[3] author = args[4] email = args[5] description = args[6] return migrate_contract(avm_code, need_storage, name, version, author, email, description) return False def migrate_contract(avm_code, need_storage, name, version, author, email, description): res = Migrate(avm_code, need_storage, name, version, author, email, description) if res: Notify(["Migrate successfully"]) new_contract_hash=AddressFromVmCode(avm_code) Notify(new_contract_hash) return True else: return False
Puede seguir los pasos a continuación para ver el resultado de la ejecución del ejemplo de código en SmartX:1. Copie y pegue el código anterior en SmartX y compílelo antes de poner los parámetros. Preste especial atención a dos problemas al ingresar parámetros:
- Asegúrese de que avm_code no exista en la cadena, de lo contrario se devolverá un error;
- La migración requiere un límite de gas alto, por lo que debe ajustar el límite de gas al ejecutar la función.
2. Después de la implementación, puede obtener el nuevo hash de contrato desde el tablero. En este ejemplo, el nuevo hash de contrato es be4606c4663081b70f745ed9fc64d4c3b0d9c183.

Resumen
En este artículo, presentamos la API de actualización de la cadena de bloques Ontology. Los desarrolladores pueden usar esta API para actualizar contratos inteligentes. Destroy API se utiliza para destruir contratos inteligentes en la cadena y Migrate API es para migrar contratos inteligentes. En el próximo artículo, presentaremos la API estática y dinámica para explorar cómo implementar la llamada estática y dinámica de los contratos inteligentes de Ontology con Python.
Encuentra el tutorial en GitHub
aquí .
¿Eres desarrollador? Asegúrate de unirte a nuestra comunidad tecnológica en
Discord . Además, eche un vistazo al
Centro de desarrolladores en nuestro sitio web, donde puede encontrar herramientas de desarrollador, documentación y más.
Encuentra ontología en otro lugar
Sitio web de ontologíaGithub /
discordiaTelegram
Inglés /
RusoTwitter /
Reddit