본문 바로가기

블럭체인

campaign contract design

728x90

 

 

아래 그림처럼 계약서을 작성할려고 합니다

 

 

 

 

 

1. 주요 변수

 

관리자 변수

  • 이 변수는 캠페인을 관리하는 사람의 주소를 저장합니다.
    관리자(또는 매니저)는 캠페인의 소유자로, 다른 사람보다 높은 권한을 가집니다.
    이들은 접근할 수 없는 메서드에 접근할 수 있는 특권을 가집니다.
  • 최소 기부금:캠페인에 기부하기 위해 필요한 최소 금액을 설정합니다.
    승인자 배열:기부자들의 주소 목록을 저장합니다.
    이 배열은 최소 기부금에 맞춰 기부한 사람들의 목록으로, 요청을 승인하는 역할을 합니다.
  • 요청 배열:관리자가 생성한 지출 요청 목록을 저장합니다.
    이 배열은 계약의 핵심 요소로, 보안을 강화하는 장치 역할을 합니다.
    관리자는 돈을 사용하고 싶을 때 지출 요청서를 만들어야 합니다.


2. 주요 기능

 

생성자 함수

캠페인이라는 이름의 생성자 함수가 있습니다.
이 함수는 계약이 처음 생성될 때 최소 기부금과 계약 소유주를 설정합니다.

 

  • 기부 함수 (contribute):
    일반 사람들이 캠페인에 기부하고 싶을 때 호출하는 함수입니다.
    기부를 통해 승인자가 되고 싶다면 이 함수를 사용하여 돈을 보냅니다.
  • 지출 요청 생성 (create request):
    관리자가 지출 요청을 생성할 수 있는 기능입니다.
    이 단계에서 관리자는 돈을 공급업체에 보내기 전에 요청서를 작성하고 승인을 받아야 합니다.
    즉, 단순히 많은 사람들이 찬성표를 던졌다고 해서 즉시 돈을 보내는 것이 아닙니다.
  • 최종 요청 (finalize request):관리자가 완성된 요청이나 충분한 승인을 받은 요청을 볼 수 있게 해주는 메서드입니다.
    이 메서드가 호출되면 돈을 분산시키거나 특정 벤더에게 보낼 수 있습니다.
    요청을 최종화하는 목적은 벤더가 언제 돈을 받을지를 관리자가 결정할 수 있도록 하는 것입니다.