deploy

작성자: convex-dev

Convex 네트워크에 액터(스마트 컨트랙트)를 배포합니다. 사용자가 내보낸 함수를 가진 새로운 온체인 액터를 생성하려 할 때 사용하세요.

npx skills add https://github.com/convex-dev/convex --skill deploy

Deploy a Convex Actor

Actors are autonomous on-chain programs with their own address, state, and callable functions.

See the convex-lisp skill for CVM conventions and error codes. Deploying is a transaction, so it needs a key the user has supplied — see transact.

Actor Structure

A typical actor deployment:

(deploy
  '(do
     ;; Internal state (private to the actor)
     (def counter 0)

     ;; Callable functions: mark each with ^:callable so it can be
     ;; invoked from outside the actor via (call ...)
     (defn ^:callable increment []
       (set! counter (+ counter 1))
       counter)

     (defn ^:callable get-count []
       counter)))

Key Rules

  • deploy returns the new actor's address (e.g. #12345)
  • Only functions tagged with ^:callable metadata can be called from outside (there is no export form). The equivalent map form is ^{:callable true}
  • Use set! to update an existing def from inside a function; plain defs declared in the actor body are private state
  • Actors have their own *address* and *balance*
  • Use (set-controller #ADDR) inside the actor to set who can upgrade it
  • deploy also accepts a vector of code forms, which is how library builders are composed into one actor: (deploy [(@convex.fungible/build-token {…}) (@convex.fungible/add-mint {…})])

After Deployment

  1. Note the returned address for the user
  2. Optionally register a CNS name: (*registry*/create 'my.actor.name #NEW-ADDR) — needs control of the parent namespace; see the cns skill
  3. Test by calling a ^:callable function: (call #NEW-ADDR (get-count))

Workflow

  1. Help the user design the actor based on $ARGUMENTS
  2. Write the Convex Lisp source
  3. Deploy using transact with the (deploy ...) expression
  4. Verify the deployment with a test query

convex-dev의 다른 스킬

convex-lisp
convex-dev
Convex Lisp 언어 참조 — CVM 규칙, 라이브러리 코드 호출, 액터 정의, juice 및 오류 코드. CVM 소스를 작성하거나 디버깅할 때 사용합니다…
ecosystem
convex-dev
Convex 생태계에서의 방향 안내 — 어떤 리포지토리에 무엇이 있는지, 사양과 문서가 어디에 있는지, 그리고 어떤 클라이언트 라이브러리가 존재하는지. 컨텍스트가 필요할 때 사용하세요…
local-network
convex-dev
로컬 Convex 테스트 네트워크를 개발용으로 실행합니다. 라이브 네트워크에 대한 변경 사항을 테스트하거나, 피어 문제를 재현하거나, 원격 네트워크가 없을 때 사용합니다.
protocol-versions
convex-dev
프로토콜 버전, 마이그레이션 및 v1 업그레이드 — 어떤 의미론을 기준으로 작성할지, 그리고 네트워크를 포크하지 않고 CVM 동작을 변경하는 방법. 다음 경우에 사용하세요…
etch
convex-dev
Etch 스토어를 검사하고 유지 관리합니다 — Convex의 콘텐츠 주소 지정 데이터베이스입니다. 피어 저장소를 검사하거나, 손상을 진단하거나, 가비지 컬렉션을 수행할 때 사용합니다.
juice
convex-dev
Juice 회계 — CVM에서의 연산 및 대역폭 비용. 트랜잭션 실행 비용을 추론하거나, :JUICE 실패를 진단하거나, …할 때 사용합니다.
trust
convex-dev
Trust 모니터 — Convex의 구성 가능한 온체인 인가 모델. 접근 제어 작성, 액터 함수 제한, 발행 권한 정의 시 사용합니다…
memory
convex-dev
메모리 회계 및 허용량 — 온체인 저장 비용, 그리고 이를 최소화하고 회수하는 방법. 상태 성장에 대해 추론하거나, 진단할 때 사용하세요…