https://github.com/andreaugusto11/satp-gateway-demo

Demo scenarios for the usage of a Blockchain Interoperability gateway, supporting Oracle functionality and the Secure Asset Transfer Protcol (SATP)

https://github.com/andreaugusto11/satp-gateway-demo

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Demo scenarios for the usage of a Blockchain Interoperability gateway, supporting Oracle functionality and the Secure Asset Transfer Protcol (SATP)

Basic Info
  • Host: GitHub
  • Owner: AndreAugusto11
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 351 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

SATP Gateway Demo

This repository contains a demo implementation of a SATP (Secure Asset Transfer Protocol) Gateway, designed to act as middleware between EVM-based blockchains. It supports various interoperability use cases explained below.

Table of Contents

Repository Structure

. ├── EVM/ # Hardhat project for setting up test EVM blockchains ├── gateway/ │ └── oracle/ │ ├── case_1/ # Middleware: Manual READ and WRITE │ ├── case_2/ # Middleware: Auto READ and WRITE │ ├── case_3/ # Register polling for periodic READ │ ├── case_4/ # Event listening + READ and UPDATE │ └── satp/ │ └── case_1/ # SATP Protocol: Asset transfer between EVM blockchains


Case Descriptions

Oracle Cases (gateway/oracle)

These use cases demonstrate the usage of the gateway as middleware to interact with EVM blockchains:

  • Case 1: Manual READ and WRITE operations using the gateway
  • Case 2: Automatic READ and WRITE operations using the gateway
  • Case 3: Registering a polling task to periodically READ from an EVM blockchain
  • Case 4: Cross-chain event listening with subsequent READ and conditional UPDATE actions

SATP Cases (gateway/satp/)

The SATP folder contains secure asset transfer protocol cases.

  • Case 1: Coordinated READ and WRITE using the gateway across blockchains, following SATP protocol.

EVM Test Environment

The EVM/ directory contains a Hardhat project used to deploy and simulate blockchain networks and contracts for the various gateway and SATP test cases.

  • Located under EVM/ignition/modules, you will find simple deployment scripts and interaction modules with hardcoded addresses for clarity and reproducibility during testing.

Important Instructions

  • Please follow the setup instructions for each case carefully.
  • Before switching from one case to another, always rerun all setup commands to ensure:

    • The environment is fully refreshed
    • Contract addresses remain consistent
    • No residual data or processes from other cases affect the results

Failure to reset the environment between cases may lead to unexpected behavior due to mismatched or stale blockchain state/configurations.


Setup & Running

Running Cases with the Makefile

You can use the provided Makefile to automate setup and environment preparation for the demo. Run:

bash make help

to see all available targets for building, deploying, and running the demo cases. The main targets are:

  • make run-oracle-case-1 — Oracle Case 1: Manual READ and WRITE
  • make run-oracle-case-2 — Oracle Case 2: Automatic READ and WRITE
  • make run-oracle-case-3 — Oracle Case 3: Register polling for periodic READ
  • make run-oracle-case-4 — Oracle Case 4: Event listening + READ and UPDATE
  • make run-satp-case-1 — SATP Case 1: Asset transfer protocol
  • make run-all-cases — Run all cases sequentially with cleanup between each

Each case also includes its own README.md with step-by-step instructions for manual or advanced usage.

Note: .PHONY targets are now placed immediately after each script in the Makefile for clarity and maintainability.


Dependencies


Contact

For questions or collaboration inquiries, feel free to reach out or open an issue on this repository.

Owner

  • Name: André Augusto
  • Login: AndreAugusto11
  • Kind: user
  • Location: Lisbon, Portugal

Ph.D student | Blockchain Interoperability | Mentor @ Hyperledger

GitHub Events

Total
  • Issue comment event: 1
  • Member event: 1
  • Push event: 22
  • Pull request event: 1
  • Pull request review event: 1
  • Pull request review comment event: 1
  • Fork event: 2
  • Create event: 4
Last Year
  • Issue comment event: 1
  • Member event: 1
  • Push event: 22
  • Pull request event: 1
  • Pull request review event: 1
  • Pull request review comment event: 1
  • Fork event: 2
  • Create event: 4

Dependencies

EVM/package-lock.json npm
  • 640 dependencies
EVM/package.json npm
  • @nomicfoundation/hardhat-ethers ^3.0.8 development
  • @nomicfoundation/hardhat-toolbox ^5.0.0 development
  • @openzeppelin/hardhat-upgrades ^3.9.0 development
  • ethers ^6.14.1 development
  • hardhat ^2.24.0 development
  • @openzeppelin/contracts ^5.3.0