Move

1 program Added 2025-10-30T07:32:58Z Model: x-ai/grok-4-fastTemp: 0.4 Evidence Report issue View issues
Aliases: —
Provenance: commit 1e8030559d · authored 2025-10-30T08:32:58+01:00 · model x-ai/grok-4-fast

Sources mentioning this language

3 sources · pl_id: pl/move
LLM (this repo) · 1PldbLinguist

Extensions claimed by this language

1 claim. Each row is one upstream assertion with its strength. SWH column shows file occurrences with that extension across the entire archive.
ExtensionSourceStrengthSWH
.movelinguistprimary61.0K files

Related languages

Monte (0.30)Morte (0.30)Mouse (0.30)Movitz (0.27)Make (0.20)

LLM-contributed programs

Basic Cookie Jar Module

Provenance: commit 1e8030559d · authored 2025-10-30T08:32:58+01:00 · model x-ai/grok-4-fast · Temp 0.4
code.move · license: Apache-2.0 · added: 2025-10-30T07:32:58Z
// In file: sources/tutorial.move

module 0x0::tutorial {

    use std::vector;

    struct Cookie has store, drop {
        val: u8,
    }

    struct CookieJar has key {
        cookies: vector::Vector<Cookie>,
    }

    fun init_module(sender: &signer) {
        move_to(sender, CookieJar { cookies: vector::empty() });
    }

    public entry fun add_cookie(jar: &mut CookieJar, val: u8) {
        vector::push_back(&mut jar.cookies, Cookie { val });
    }

    public entry fun remove_cookie(jar: &mut CookieJar): u8 {
        vector::pop_back(&mut jar.cookies).val
    }

    public entry fun get_cookies_length(jar: &signer CookieJar): u64 {
        vector::length(&jar.cookies)
    }

}

Real programs from Software Heritage

1 sample mined from derived_datasets/<date>/contents/*.parquet, byte-verified against the SWH archive. Citation-grade qualified SWHIDs preserved.
token_swap_test.move · 4950 B · ext .move · seen 22× in SWH
via unique-primary
swh:1:cnt:b93ed93443069a4cbb03c61f875dc2762f390a5e;origin=https://github.com/fuhongxuelook/starswap-core;anchor=swh:1:rev:145f9651f44929b5f57a6786502bf762cfc5cfd0;path=/tests/testsuite/test/token_swap_test.move
Open in SWH · Raw bytes (SWH) · GitHub raw
Show source
//! account: alice, 10000000000000 0x1::STC::STC
//! account: joe
//! account: admin, 0x81144d60492982a45ba93fba47cae988, 10000000000000 0x1::STC::STC
//! account: liquidier, 10000000000000 0x1::STC::STC
//! account: exchanger

//! sender: alice
address alice = {{alice}};
module alice::TokenMock {
    // mock MyToken token
    struct MyToken has copy, drop, store { }

    // mock Usdx token
    struct Usdx has copy, drop, store { }
}


//! new-transaction
//! sender: alice
address alice = {{alice}};
script {
    use alice::TokenMock::{Usdx};
    use 0x1::Account;
    use 0x1::Token;
    use 0x1::Math;
    fun init(signer: signer) {
        let precision: u8 = 9; //STC precision is also 9.
        let scaling_factor = Math::pow(10, (precision as u64));
        let usdx_amount: u128 = 50000 * scaling_factor;
        // Resister and mint Usdx
        Token::register_token<Usdx>(&signer, precision);
        Account::do_accept_token<Usdx>(&signer);
        let usdx_token = Token::mint<Usdx>(&signer, usdx_amount);
        Account::deposit_to_self(&signer, usdx_token);
    }
}
// check: EXECUTED

//! new-transaction
//! sender: admin
address alice = {{alice}};
script {
    use alice::TokenMock::{Usdx};
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap;
    use 0x1::STC::STC;
    fun register_token_pair(signer: signer) {
        //token pair register must be swap admin account
        TokenSwap::register_swap_pair<STC, Usdx>(&signer);
        assert(TokenSwap::swap_pair_exists<STC, Usdx>(), 111);
    }
}
// check: EXECUTED


////! new-transaction
////! sender: liquidier
//// mint some Usdx to liquidier
//address alice = {{alice}};
//address liquidier = {{liquidier}};
//script{
//    use alice::TokenMock;
//    use 0x1::Account;
//    use 0x1::Token;
//    fun init_liquidier(signer: signer) {
//        let usdx_amount = 100000000;
//        Account::do_accept_token<TokenMock::Usdx>(&signer);
//        let usdx_token = Token::mint<TokenMock::Usdx>(&signer, usdx_amount);
//        Account::deposit_to_self(&signer, usdx_token);
//        assert(Account::balance<TokenMock::Usdx>(@liquidier) == 100000000, 42);
//    }
//}
//
//// check: EXECUTED


//! new-transaction
//! sender: alice
address alice = {{alice}};
script{
    use 0x1::STC;
    use alice::TokenMock;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap::LiquidityToken;
    use 0x1::Account;

    fun main(signer: signer) {
        Account::do_accept_token<LiquidityToken<STC::STC, TokenMock::Usdx>>(&signer);
        // STC/Usdx = 1:2
        let stc_amount = 10000;
        let usdx_amount = 20000;
        let stc = Account::withdraw<STC::STC>( &signer, stc_amount);
        let usdx = Account::withdraw<TokenMock::Usdx>( &signer, usdx_amount);
        let liquidity_token = TokenSwap::mint<STC::STC, TokenMock::Usdx>(stc, usdx);
        Account::deposit_to_self( &signer, liquidity_token);

        let (x, y) = TokenSwap::get_reserves<STC::STC, TokenMock::Usdx>();
        assert(x == stc_amount, 111);
        assert(y == usdx_amount, 112);
    }
}
// check: EXECUTED

//! new-transaction
//! sender: alice
address alice = {{alice}};
script {
    use 0x1::STC;
    use alice::TokenMock;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwapRouter;
    use 0x1::Account;
    use 0x1::Token;
    fun main(signer: signer) {
//        Account::do_accept_token<TokenMock::Usdx>(&signer);
        let stc_amount = 100000;
        let stc = Account::withdraw<STC::STC>( &signer, stc_amount);
        let amount_out = {
            let (x, y) = TokenSwap::get_reserves<STC::STC, TokenMock::Usdx>();
            TokenSwapRouter::get_amount_out(stc_amount, x, y)
        };
        let (stc_token, usdx_token) = TokenSwap::swap<STC::STC, TokenMock::Usdx>(stc, amount_out, Token::zero<TokenMock::Usdx>(), 0);
        Token::destroy_zero(stc_token);
        Account::deposit_to_self(&signer, usdx_token);
    }
}

// check: EXECUTED

//! new-transaction
//! sender: alice
address alice = {{alice}};
script{
    use 0x1::STC;
    use 0x1::Account;
    use 0x1::Signer;
    use alice::TokenMock;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap;
    use 0x81144d60492982a45ba93fba47cae988::TokenSwap::LiquidityToken;
    // use 0x1::Debug;

    fun main(signer: signer) {
        let liquidity_balance = Account::balance<LiquidityToken<STC::STC, TokenMock::Usdx>>(Signer::address_of( &signer));
        let liquidity = Account::withdraw<LiquidityToken<STC::STC, TokenMock::Usdx>>( &signer, liquidity_balance);
        let (stc, usdx) = TokenSwap::burn<STC::STC, TokenMock::Usdx>(liquidity);
        Account::deposit_to_self(&signer, stc);
        Account::deposit_to_self(&signer, usdx);

        let (x, y) = TokenSwap::get_reserves<STC::STC, TokenMock::Usdx>();
        assert(x == 0, 111);
        assert(y == 0, 112);
    }
}
// check: EXECUTED

Contribute — propose a file extension

Tell us where to find evidence about Move (mapped to pl/move). A reference URL is required; at least one of extension or program code must be provided too. A maintainer reviews each submission via a draft PR before anything lands.
Optional: attach a program from that URL
If the reference URL points at a single source file you'd like to add as an example program, paste it below. The workflow will write it under languages/Move/programs/<sha>/. Keep under ~200 lines.
(or open the pre-filled issue directly)
← Mov MoveIt →