Skip to content

Commit

Permalink
examples
Browse files Browse the repository at this point in the history
  • Loading branch information
PolyProgrammist committed Feb 26, 2024
1 parent df8f9e5 commit d8fb132
Show file tree
Hide file tree
Showing 17 changed files with 81 additions and 116 deletions.
20 changes: 6 additions & 14 deletions examples/adder/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,19 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::serde::{Deserialize, Serialize};
use near_sdk::{near_bindgen, NearSchema};
use near_sdk::near;

#[derive(NearSchema, Serialize, Deserialize, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[serde(crate = "near_sdk::serde")]
#[abi(json, borsh)]
#[near(serializers=[borsh, json])]
pub struct Pair(u32, u32);

#[derive(NearSchema, Serialize, Deserialize)]
#[serde(crate = "near_sdk::serde")]
#[abi(json, borsh)]
#[near(serializers=[borsh, json])]
pub struct DoublePair {
first: Pair,
second: Pair,
}

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh, json, bindgen])]
pub struct Adder {}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl Adder {
/// Adds two pairs point-wise.
pub fn add(&self, a: Pair, b: Pair) -> Pair {
Expand Down
6 changes: 3 additions & 3 deletions examples/callback-results/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use near_sdk::require;
use near_sdk::{env, near_bindgen, Promise, PromiseError};
use near_sdk::{env, near, Promise, PromiseError};

const A_VALUE: u8 = 8;

#[near_bindgen]
#[near(serializers=[bindgen])]
pub struct Callback;

#[near_bindgen]
#[near(serializers=[bindgen])]
impl Callback {
/// Call functions a, b, and c asynchronously and handle results with `handle_callbacks`.
pub fn call_all(fail_b: bool, c_value: u8, d_value: u8) -> Promise {
Expand Down
9 changes: 4 additions & 5 deletions examples/cross-contract-calls/high-level/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::env;
use near_sdk::{log, near_bindgen, PromiseOrValue};
use near_sdk::{log, near, PromiseOrValue};

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh, bindgen])]
pub struct CrossContract {}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl CrossContract {
pub fn factorial(&self, n: u32) -> PromiseOrValue<u32> {
if n <= 1 {
Expand Down
9 changes: 4 additions & 5 deletions examples/cross-contract-calls/low-level/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::serde_json;
use near_sdk::{env, near_bindgen, require, Gas, NearToken, PromiseResult};
use near_sdk::{env, near, require, Gas, NearToken, PromiseResult};

// Prepaid gas for a single (not inclusive of recursion) `factorial` call.
const FACTORIAL_CALL_GAS: Gas = Gas::from_tgas(20);

// Prepaid gas for a single `factorial_mult` call.
const FACTORIAL_MULT_CALL_GAS: Gas = Gas::from_tgas(10);

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh, bindgen])]
pub struct CrossContract {}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl CrossContract {
pub fn factorial(&self, n: u32) {
if n <= 1 {
Expand Down
9 changes: 4 additions & 5 deletions examples/factory-contract/high-level/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::PromiseError;
use near_sdk::{env, ext_contract, near_bindgen, AccountId, NearToken, Promise};
use near_sdk::{env, ext_contract, near, AccountId, NearToken, Promise};

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh, bindgen])]
pub struct FactoryContract {}

// If the `ext_contract` name is not provided explicitly, the namespace for generated methods is
Expand All @@ -15,7 +14,7 @@ pub trait ExtStatusMessage {
fn get_status(&self, account_id: AccountId) -> Option<String>;
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FactoryContract {
pub fn deploy_status_message(&self, account_id: AccountId, amount: NearToken) {
Promise::new(account_id)
Expand Down
9 changes: 4 additions & 5 deletions examples/factory-contract/low-level/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::json_types::U128;
use near_sdk::serde_json;
use near_sdk::{env, near_bindgen, AccountId, Gas, NearToken, PromiseResult};
use near_sdk::{env, near, AccountId, Gas, NearToken, PromiseResult};

// Prepaid gas for making a single simple call.
const SINGLE_CALL_GAS: Gas = Gas::from_tgas(20);

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh, bindgen])]
pub struct FactoryContract {}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FactoryContract {
pub fn deploy_status_message(&self, account_id: AccountId, amount: U128) {
let promise_idx = env::promise_batch_create(&account_id);
Expand Down
21 changes: 10 additions & 11 deletions examples/fungible-token/ft/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,27 @@ use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::collections::LazyOption;
use near_sdk::json_types::U128;
use near_sdk::{
env, log, near_bindgen, require, AccountId, BorshStorageKey, NearToken, PanicOnDefault,
env, log, near, require, AccountId, BorshStorageKey, NearToken, PanicOnDefault,
PromiseOrValue,
};

#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(PanicOnDefault)]
#[near(serializers=[borsh, bindgen])]
pub struct Contract {
token: FungibleToken,
metadata: LazyOption<FungibleTokenMetadata>,
}

const DATA_IMAGE_SVG_NEAR_ICON: &str = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 288 288'%3E%3Cg id='l' data-name='l'%3E%3Cpath d='M187.58,79.81l-30.1,44.69a3.2,3.2,0,0,0,4.75,4.2L191.86,103a1.2,1.2,0,0,1,2,.91v80.46a1.2,1.2,0,0,1-2.12.77L102.18,77.93A15.35,15.35,0,0,0,90.47,72.5H87.34A15.34,15.34,0,0,0,72,87.84V201.16A15.34,15.34,0,0,0,87.34,216.5h0a15.35,15.35,0,0,0,13.08-7.31l30.1-44.69a3.2,3.2,0,0,0-4.75-4.2L96.14,186a1.2,1.2,0,0,1-2-.91V104.61a1.2,1.2,0,0,1,2.12-.77l89.55,107.23a15.35,15.35,0,0,0,11.71,5.43h3.13A15.34,15.34,0,0,0,216,201.16V87.84A15.34,15.34,0,0,0,200.66,72.5h0A15.35,15.35,0,0,0,187.58,79.81Z'/%3E%3C/g%3E%3C/svg%3E";

#[derive(BorshSerialize, BorshStorageKey)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(BorshStorageKey)]
#[near(serializers=[borsh])]
enum StorageKey {
FungibleToken,
Metadata,
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl Contract {
/// Initializes the contract with the given total supply owned by the given `owner_id` with
/// default metadata (for example purposes only).
Expand Down Expand Up @@ -94,7 +93,7 @@ impl Contract {
}
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FungibleTokenCore for Contract {
#[payable]
fn ft_transfer(&mut self, receiver_id: AccountId, amount: U128, memo: Option<String>) {
Expand All @@ -121,7 +120,7 @@ impl FungibleTokenCore for Contract {
}
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FungibleTokenResolver for Contract {
#[private]
fn ft_resolve_transfer(
Expand All @@ -139,7 +138,7 @@ impl FungibleTokenResolver for Contract {
}
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl StorageManagement for Contract {
#[payable]
fn storage_deposit(
Expand Down Expand Up @@ -175,7 +174,7 @@ impl StorageManagement for Contract {
}
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FungibleTokenMetadataProvider for Contract {
fn ft_metadata(&self) -> FungibleTokenMetadata {
self.metadata.get().unwrap()
Expand Down
13 changes: 6 additions & 7 deletions examples/lockable-fungible-token/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::collections::UnorderedMap;
use near_sdk::{env, json_types::U128, near_bindgen, AccountId, PanicOnDefault};
use near_sdk::{env, json_types::U128, near, AccountId, PanicOnDefault};
use std::collections::HashMap;

type Balance = u128;

#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(Default)]
#[near(serializers=[borsh])]
pub struct Account {
/// Current unlocked balance
pub balance: Balance,
Expand Down Expand Up @@ -46,9 +46,8 @@ impl Account {
}
}

#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)]
#[borsh(crate = "near_sdk::borsh")]
#[derive(PanicOnDefault)]
#[near(serializers=[borsh, bindgen])]
pub struct FunToken {
/// AccountID -> Account details.
pub accounts: UnorderedMap<AccountId, Account>,
Expand All @@ -57,7 +56,7 @@ pub struct FunToken {
pub total_supply: Balance,
}

#[near_bindgen]
#[near(serializers=[bindgen])]
impl FunToken {
#[init]
#[handle_result]
Expand Down
4 changes: 1 addition & 3 deletions examples/mission-control/src/account.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::ops;
use near_sdk::NearSchema;

use near_sdk::near;

Expand All @@ -16,15 +15,14 @@ use near_sdk::near;
Clone,
Copy,
Debug,
NearSchema,
)]
#[near(serializers = [json, borsh])]
pub struct Quantity(pub i32);

#[near]
pub struct X;

#[derive(Clone, NearSchema)]
#[derive(Clone)]
#[near(serializers = [json, borsh])]
pub struct Account(pub HashMap<Asset, Quantity>);

Expand Down
2 changes: 0 additions & 2 deletions examples/mission-control/src/agent.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
use crate::account::*;
use crate::asset::*;
use crate::rate::*;
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::serde::{Deserialize, Serialize};
use std::collections::HashMap;
use near_sdk::near;

Expand Down
5 changes: 0 additions & 5 deletions examples/mission-control/src/asset.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use near_sdk::NearSchema;
use near_sdk::near;

#[derive(
Expand All @@ -9,7 +8,6 @@ use near_sdk::near;
Hash,
Clone,
Copy,
NearSchema,
)]
#[near(serializers = [json, borsh])]
pub enum Resource {
Expand All @@ -27,7 +25,6 @@ pub enum Resource {
Hash,
Clone,
Copy,
NearSchema,
)]
#[near(serializers = [json, borsh])]
pub enum Reward {
Expand All @@ -46,7 +43,6 @@ pub enum Reward {
Hash,
Clone,
Copy,
NearSchema,
)]
#[near(serializers = [json, borsh])]
pub enum Asset {
Expand All @@ -62,7 +58,6 @@ pub enum Asset {
Hash,
PartialOrd,
Ord,
NearSchema
)]
#[near(serializers = [json, borsh])]
pub enum Exchange {
Expand Down
2 changes: 0 additions & 2 deletions examples/mission-control/src/mission_control.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ use crate::agent::Agent;
use crate::asset::*;
use crate::rate::*;
use near_sdk::AccountId;
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::serde::{Deserialize, Serialize};
use near_sdk::{env, near_bindgen};
use std::collections::HashMap;
use near_sdk::near;
Expand Down
Loading

0 comments on commit d8fb132

Please sign in to comment.