init 메서드에 설정된 문자열 속성은 항상 빈 문자열을 반환합니다.

벽옥

impl과 함께 다음 구조체가 있습니다.

#[near_bindgen]
#[derive(Default, Serialize, Deserialize, BorshDeserialize, BorshSerialize, Debug)]
pub struct MyStruct {
    owner: String
}

#[near_bindgen(init => new)]
impl MyStruct {
    fn new() -> Self {
        Self {
             owner: "bob".to_string()
        }
    }

    fn get_owner(&self) -> String {
         return self.owner;
    }
}

그런 다음 사용하여 계약을 배포합니다. near deploy my_contract --masterAccount myAccount

Near-shell을 사용하여 get_owner를 호출하면 near call my_contract get_owner --accountId=myAccount항상 ""예상되는 "bob".

배포시 새 메서드가 호출되지 않는 것 같습니다.

에브 게니 쿠자 코프

이니셜 라이저는 배포시 자동으로 호출되지 않습니다. deploy코드를 배포하고 계약에 대해 아무것도 호출하지 않습니다. 셸에 새 메서드를 추가해야합니다 deploy_and_call. 그러나 지금은 new수동으로 호출하십시오 .

우리가 자동으로 초기화하지 않는 이유는 initializer추가 인수를 취할 수 있기 때문입니다. new메소드에 소유자를 전달할 수 있습니다 . 다음은 사용자 지정 인수와 함께 이니셜 라이저를 사용하는 방법과 초기화없이 계약을 호출 할 수 없는지 확인하는 방법의 예입니다.

#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize)]
pub struct FunToken {
    /// AccountID -> Account details.
    pub accounts: Map<AccountId, Account>,

    /// Total supply of the all token.
    pub total_supply: Balance,
}

impl Default for FunToken {
    fn default() -> Self {
        env::panic(b"Not initialized");
        unreachable!();
    }
}

#[near_bindgen(init => new)]
impl FunToken {
    pub fn new(owner_id: AccountId, total_supply: Balance) -> Self {
        let mut ft = Self { accounts: Map::new(b"a".to_vec()), total_supply };
        let mut account = ft.get_account(&owner_id);
        account.balance = total_supply;
        ft.accounts.insert(&owner_id, &account);
        ft
    }
}

여기에서 : https://github.com/nearprotocol/near-bindgen/blob/master/examples/fun-token/src/lib.rs#L52-L77

기본적으로 기본 호출 중에 패닉이 발생하므로 초기화되지 않은 계약을 호출 할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

xpathGetString은 항상 빈 문자열을 반환합니다.

잠금 해제 연결 목록의 구현은 항상 toString ()에 빈 문자열을 반환합니다.

Vim 함수 확장은 항상 빈 문자열을 반환합니다.

QFileDialog :: getSaveFileName ()은 파일 대화 상자에서 저장을 클릭 한 후 빈 문자열을 반환합니다.

DialogFragment의 EditText는 항상 빈 문자열을 반환합니다.

textContent 및 innerText는 항상 <빈 문자열>을 반환합니다.

$ {NSD_GetText}는 항상 빈 문자열을 반환합니다.

Textbox.text는 항상 C # 뒤에있는 코드에서 빈 문자열을 반환합니다.

Javascript : 이상한 동작 '빈 문자열'AND '거짓'은 빈 문자열을 반환합니다.

빈 문자열을 includes ( "")에 전달할 때 항상 true를 반환합니까?

getText () 메서드는 빈 문자열을 반환합니다.

html 테이블의 xpath 쿼리는 항상 파이썬에서 빈 문자열을 반환합니다.

파이썬은 목록에서 빈 문자열을 null로 설정합니다.

Symfony 인증 자 : 컨트롤러에서 Doctrine은 값이 설정되어 있지만 빈 문자열 필드가있는 사용자 항목을 반환합니다.

for 루프에서 생성 된 문자열을 반환합니다.

Mac 10.15.7의 phantomjs, 유효한 요소는 항상 getText()에 대해 빈 문자열을 반환합니다.

JSON 문자열에 속성이 없으면 빈 문자열을 반환하는 방법은 무엇입니까?

따옴표로 묶인 문자열에 대한 Flex 작업은 빈 문자열을 반환합니다.

readAll () 또는 readAllStandardOutput ()은 실행 전에도 빈 문자열을 반환합니다.

"get"메서드는 해당 문자열에 값이있을 때 빈 문자열을 반환합니다.

빈 속성을 반환하는 문자열 속성 가져오기 및 설정

setText () 메서드는 항상 값을 문자열로 설정합니까?

bash 문자열 보간은 빈 문자열을 반환합니다.

목록에있는 2 개의 연속 된 빈 문자열을 1 개의 빈 문자열로 병합 할 수 있으므로 4 개의 빈 문자열이있을 때 병합하여 2 개의 빈 문자열을 만들어야합니다.

JsonEncode는 PHP에서 빈 문자열을 반환합니다.

SwiftUI Picker가 CoreData에서 빈 문자열을 반환합니다.

내 중첩 목록은 항상 빈 문자열을 추가합니다.

substr은 PHP 8에서 문자열이 시작 문자보다 작을 때 빈 문자열을 반환합니다.

HttpResponseMessage.Content.ReasAsString은 빈 문자열을 반환합니다.

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관